Ronaldo double helps sink Sociedad
A resurgent Kaka and new loan signing Emmanuel Adebayor added a goal either side of Ronaldo's 23rd and 24th of the campaign as Real bounced back from last weekend's shock defeat at Osasuna to stay in touch with the champions.
Barcelona went 10 points clear when World Player of the Year Messi netted his fourth hat-trick of the season in a 3-0 win over Atletico Madrid on Saturday, a record 16th successive victory for the Catalan club.
Ronaldo continued his personal duel with the Argentina international and joined him at the top of the La Liga scoring charts. The Portuguese forward has 34 goals in 35 matches in all competitions to Messi's astounding 40 in 33.
"If he doesn't score another goal this season his league campaign will have been fantastic," coach Jose Mourinho said of his compatriot Ronaldo at a news conference.
"He always plays at the peak of his abilities and ambitions, he gives everything for the team."
Barca have 61 points from 22 matches, with Real, who have won all 11 home games, on 54 and Villarreal nine adrift in third after losing their unbeaten home record in a 1-0 defeat by local rivals Levante on Saturday.
Fourth-placed Valencia closed to within a point of Villarreal when Aritz Aduriz and Tino Costa scored in a 2-0 home win over promoted Hercules in Sunday's late kick-off.
With Ronaldo, Kaka and Mesut Ozil providing attacking flair and pace and new loan signing Adebayor leading the line, Real thrilled their fans at the Bernabeu with a dominant and entertaining performance.
Brazil playmaker Kaka, who hit the crossbar in the second half, continued his return from a serious knee injury when he controlled the ball on the edge of the area in the eighth minute and stroked it low past goalkeeper Claudio Bravo.
Ronaldo had not scored in four matches and ended that barren run with a powerful left-foot strike from outside the area in the 21st.
He celebrated turning 26 on Saturday shortly before half-time when he leaped above the Sociedad defence to send a header flying high past Bravo.
The visitors pulled a fortunate goal back in the 72nd when Iker Casillas blocked Raul Tamudo's shot and the ball rebounded off Real defender Alvaro Arbeloa and into the net.
Togo striker Adebayor, who scored his first goal for Real since joining from Manchester City in Wednesday's King's Cup semi-final against Sevilla, clipped in Real's fourth a minute from time.
"It always helps when you score an early goal," Real's Spain midfielder Xabi Alonso, a former Sociedad player, said in a television interview.
"We controlled the game tonight and it was a complete performance spoiled only by conceding the goal," he added.
In the earlier kick-off, Sevilla were held to a 0-0 draw at home by Andalusian rivals Malaga.