Ronaldo-inspired Real rout Villarreal
The Portugal forward was a constant threat and led the charge with a thunderous free kick after 18 minutes before having a hand in four more goals.
After Kaka converted a penalty in the 21st, Ronaldo helped set up Gonzalo Higuain for a double, laid on Kaka's second and won a penalty at the end scored by Xabi Alonso.
Barcelona crushed Racing Santander 4-0 on Saturday and have 58 points from 23 games. Real are on 56 and third-placed Valencia, who host Getafe on Monday, have 43.
"Cristiano has played very well but the important thing is what the whole team has done," Argentina striker Higuain told reporters.
"We are delighted with the performance today after what happened in Lyon. We need to keep playing this way from now on."
Real coach Manuel Pellegrini needed a positive result after severe media criticism of the 1-0 Champions League defeat at Olympique Lyon in the week.
Ronaldo set them on the way when he forced a foul on the edge of the area and arrowed a vicious free kick into the top corner for his 12th league goal of the campaign.
Real were awarded a penalty when Higuain was tripped and Kaka netted from the spot.
Villarreal pulled one back as Marcos Senna curled a superb free kick over the wall in the 31st minute before Ronaldo broke wide in the 54th and crossed for Higuain to restore the two-goal cushion.
POWER AND PACE
Villarreal engineered a neat second goal from Brazilian Nilmar in the 66th minute but had no answer to Ronaldo's power and pace.
The Portuguese sent Marcelo down the left and he crossed for Higuain to net his 14th league goal of the campaign in the 71st and then Ronaldo dribbled down the wing and set up Kaka for the fifth.
The former Manchester United player also won a penalty near the end which Alonso scored at the second attempt.
Earlier, seventh-placed Athletic Bilbao kept up their push for the European places with a 4-1 victory over 10-man Tenerife at San Mames.
The islanders, who have only managed two points on their travels all season, had defender Jose Antonio Culebras sent off after 17 minutes and Bilbao's Fernando Llorente scored from the resulting penalty.
Gaizka Toquero, Andoni Iraola and Igor Gabilondo sealed a win which gave the Basques 36 points from 23 matches.
Sporting Gijon also won 3-1 at Real Zaragoza, Malaga were 2-1 home winners over Espanyol and Osasuna drew 1-1 with Real Valladolid.
Inconsistent Atletico Madrid, who last weekend became the first side to beat Barcelona in the league this season, fell 1-0 at Almeria, Pablo Piatti scoring in the 87th minute.