Real Madrid bounced back from their Copa del Rey exit by maintaining their push for the Primera Liga title with a 3-1 win over basement boys Real Zaragoza.
Zaragoza stunned the home fans inside the Bernabeu when Angel Lafita gave them the lead after just 11 minutes.
Real fought back and drew level just past the half hour mark when Kaka found the net.
Cristiano Ronaldo gave Real the lead four minutes after the break with his 31st goal of the season and Mesut Ozil sealed the win with a third on 56 minutes.
Barcelona dropped two more points to fall seven points behind Real after being held to a 0-0 draw by Villarreal at El Madrigal.
Lionel Messi had Barca's best chance of the first-half but his lob drifted just wide of the post after he had latched onto a long ball.
After the break, Cesc Fabregas saw a deflected shot tipped onto the crossbar and the former Arsenal star then put a late chance over the bar on the rebound, after a Messi shot had been saved.
Espanyol maintained their push for a top four finish with a 1-0 win over Real Mallorca.
Vladimir Weiss scored the only goal of the game on 18 minutes when Mallorca keeoer Dudu Aouate collided with one of his own defenders and dropped the ball to the feet of Weiss who rolled the ball into the empty net.
Aouate's misery was compounded when he was sent off a minute into the second half for a professional foul as Espanyol moved level on points with fourth-placed Levante.
Fernando Llorente scored a hat-trick to inspire Athletic Bilbao to a 3-2 win over Rayo Vallecano.
Michu put Rayo ahead after 11 minutes only for Llorente to equalise five minutes.
Llorente gave Bilbao the lead on 23 minutes with a fine turn and shot, but the lead proved short-lived as Alejandro Arribas drew Rayo level four minutes later.
Spain international Llorente grabbed the winner for Bilbao as he completed his hat-trick on 68 minutes to move Bilbao up to sixth spot.