Ronaldo scores sixth treble in Real romp
Real cut the lead on their arch-rivals back to five points with two games left to play, which means Pep Guardiola's Barca side can wrap up their third consecutive league crown with a draw in their game in hand at Levante on Wednesday.
Champions League finalists Barca have 91 points to Real's 86 and hold the head-to-head advantage over Jose Mourinho's team should they finish level on points next week.
Getafe slipped closer to the relegation places in 17th with 40 points, one ahead of 18th-placed Real Zaragoza, who visit fellow strugglers Real Sociedad (41) on Wednesday.
Deportivo La Coruna's 2-1 comeback win over Athletic Bilbao pulled them out of the bottom three up to 14th with 42 points.
Racing Santander also recovered to win 2-1 at home to Atletico Madrid to go ninth on 46 with Malaga were one point behind them in 10th after a 2-0 win at Sporting Gijon.
Ronaldo closed to within two goals of Real Madrid's club record of 38 for a season, held by Hugo Sanchez, with his seventh goal in four days ahving bagged four in Saturday's 6-2 demolition of Sevilla.
The Portugal forward outjumped two defenders to head the opener in the 24th minute from Mesut Ozil's superb curling cross with the outside of his left boot.
The German playmaker also laid on Ronaldo's second after a swift counter-attack in the 57th.
Substitute Karim Benzema then guided in Xabi Alonso's long pass before Ronaldo sealed his hat-trick with a penalty in added-time, taking his league tally for the season to an unrivalled 36 goals, ahead of Barcelona's Lionel Messi with 31.
"I'm in good form. I am fighting to win the top scorers' award but I am not obsessed with it," Ronaldo told Spanish television.
Racing were all but assured of La Liga football next season with their win over Europa League-chasing Atletico after an emotional pre-match tribute to former fan and local resident Seve Ballesteros.
The Spanish golfer, a five-times major winner, died aged 54 on Saturday after a struggling to overcome a brain tumour diagnosed in 2008.
Both teams walked out at the Sardinero stadium with shirts dedicated to Ballesteros, while a group of children carried a giant photo of him into the centre circle, for a minute's silence before kick-off.
Although Mario Suarez scored first for Atletico, goals from Kennedy Bakircioglu and Markus Rosenberg ensured the match finished with huge celebrations from the home fans.
Malaga were fired to their fifth consecutive win by in-form Brazilian forward Julio Baptista, who scored his seventh goal in five matches with a spectacular mid-air scissors volley.
Deportivo, champions in 2000 and European regulars in the early part of the last decade, pulled away from trouble courtesy of Adrian Lopez's effort, which was diverted into his own net by Bilbao's Carlos Gurpegui, and a Xabi Castillo own goal.