Barcelona dropped precious points in a 0-0 draw at Villarreal on Saturday night to slip seven points behind Real Madrid at the top of La Liga.
Earlier Kaka, Cristiano Ronaldo and Mesut Ozil had scored to help Real Madrid beat Zaragoza 3-1 and pile the pressure on Barca, who never convinced against a well-organised Villarreal.
The first chance came on three minutes when Dani Alves found himself clear with just Diego Lopez to beat at close range, but the Villarreal goalkeeper stood tall and blocked the shot.
Five minutes later, Villarreal conjured up some quick passing that provided an opening for Ruben Gracia ‘Cani’ who produced a good save from Victor Valdes.
Lionel Messi was then sent clear for a one-on-one with Lopez and gently lobbed the ball over the goalkeeper only to watch the ball gently roll inches wide.
Javier Mascherano was at hand to clear a wayward Gerard Pique header from the Barcelona goal-line and Villarreal were suddenly creating the better chances.
Marco Ruben shot high on 35 minutes after a strong run took him clear and then Marco Senna brought an acrobatic save from Valdes.
Pep Guardiola made a tactical change on the hour mark, taking off Pique and replacing him with Alexis Sanchez, but the all-important three points seemed a long way from Barca’s grasp.
Cesc Fabregas had a shot pushed by Lopez onto the bar with 12 minutes remaining and a subdued Messi had two shots blocked in the final minutes.
At the Santiago Bernabeu, Angel Lafita gave bottom side Zaragoza an early lead.
But Madrid soon responded as Kaka slotted the equaliser on 31 minutes.
Real continued in the same vein after the break and Ozil supplied Ronaldo for an easy finish on 48 minutes.
Then Kaka was the supplier for Ozil, who finished well with a powerful shot from a tight angle for his first goal of the season and Madrid’s third on 55 minutes.
The result makes it 15 wins in 16 league games, the home defeat to Barcelona in December being the only blip, for a Madrid side showing great consistency in the league.
Esteban Granero, who started only his second league match of the season, summed up the importance of the result for Madrid.
“We had to win this game and maintain the gap that we have at the top of the league,” he said.
Earlier, Espanyol beat 10-man Mallorca 1-0 with a Vladimir Weiss goal to remain fifth, level on points with fourth-placed Levante, who play Getafe at home on Sunday.
Spanish centre-forward Fernando Llorente scored a hat-trick for Athletic Bilbao in a 3-2 win at Rayo Vallecano to keep the Basque side in sixth, two points behind Espanyol and Levante.
