Real will go into their final game of the season against Athletic Bilbao at the Bernabeu next weekend knowing that if they win or match Sociedad's result at home to Atletico Madrid they will be assured of their 29th league title.
The title appeared to slip from Real Sociedad's grasp when doubles from Ronaldo and Raul gave Real Madrid their comfortable win against Atletico while the Basque fell to two neatly taken goals from Celta midfielder Alexander Mostovoi and another from Egyptian striker Mido.
With just one game left to play, Real Madrid lead the table on 75 points, Real Sociedad follow on 73 and Deportivo Coruna, who lost 3-2 at Athletic Bilbao, are safe in third on 69.
With Barcelona claiming a 3-1 win over nine-man Valencia at the Mestalla, Celta's victory assures them of fourth place and a first ever berth in the Champions League. Celta have 61 points to fifth-placed Valencia's 57.
Barcelona's victory keeps them in with a chance of a place in the UEFA Cup, but they must hope that six-placed Athletic Bilbao lose to Real Madrid and they win their last game at home to Celta.
Real could not have got off to a better start at Atletico when Zinedine Zidane threaded a perfectly weighted pass through the opposition defence towards the lurking Ronaldo who let rip with a fierce left foot shot in the seventh minute.
As news filtered through from Vigo that Real Sociedad, who led by one point before the day's matches, were trailing to Celta, Real went further ahead thanks to a trademark goal from Raul on 19 minutes.
SUPERB CROSS
The Spanish international striker poked in at the far post after Luis Figo had beaten former Barcelona team mate Sergi on the right and curled a superb cross in behind the Atletico defence.
Atletico were still reeling from the double setback when Ronaldo struck again just after the half hour.
This time the World and European Player of the Year ghosted in at the far post to guide in a low cross from fellow Brazilian Roberto Carlos.
Real were able to cruise in the second half, but still managed to add a fourth when the unmarked Raul made the most of more dire defending from Atletico to slot in from close range.
Sociedad never looked comfortable against a highly-motivated Celta, gunning for their first place in the Champions League.
The Basque side suffered an early blow to their title hopes when Mostovoi made space for himself on the edge of the area and sent keeper Sander Westerveld the wrong way with his deflected shot.
Sociedad suffered further blows when striker Darko Kovacevic was forced off before the break with an ankle injury and Mostovoi put Celta further ahead when he sneaked in to head home an Edu cross at the near post soon after the interval.
Turkish striker Nihat Kahveci clawed one back for Sociedad when he netted from a Javi de Pedro free kick on 67 minutes, but they were caught out on the break a few minutes later as they pushed forward in search of an equaliser.
Unmarked Celta striker Mido poked home into the empty net on 71 minutes and although Nihat struck again to make it 3-2, Sociedad were unable to turn the match around, leaving their 8,000 travelling fans with a disappointing trek back across northern Spain to San Sebastian.
More from rediff