Barcelona bounced back from their UEFA Champions League defeat to beat Sevilla at home as Real Madrid also came from a goal down to overcome Deportivo La Coruna.
Lionel Messi scored for the 15th Primera Liga game in a row as leaders Barcelona recovered to beat Sevilla 2-1 at Camp Nou.
Sevilla silenced the home crowd three minutes before half-time when Alberto Botia headed home Coke's set-piece.
But the fit-again David Villa headed Barcelona level seven minutes into the second half before Messi struck the winner on the hour mark.
Gonzalo Higuain scored an 88th-minute winner as Real Madrid came from a goal down to sneak past a gutsy Deportivo La Coruna side 2-1 away from home.
Depor broke the deadlock in the 35th minute when Riki latched on to Pizzi's pass, cut in between defensive duo Ricardo Carvalho and Pepe before beating Diego Lopez at his near post.
Higuain had a goal ruled out for offside in the second half before Real deservedly levelled when Kaka fired low into the net from just outside the area in the 73rd minute.
Real snatched victory in the 88th minute when Cristiano Ronaldo squared for Higuain, who was left with the simplest of tap-ins before the night was slightly soured by Angel Di Maria's sending off in the final minute for a second yellow card.
Real Zaragoza missed a great chance to increase the gap between themselves and the sides in the relegation zone by throwing away a two-goal lead to draw 2-2 with Valencia.
Zaragoza got the ideal start when they were awarded a penalty after just four minutes when Helder Postiga was tripped by Victor Ruiz and Apono sent Diego Alves the wrong way from the spot.
The hosts doubled their lead just after the hour mark when Apono delivered a perfect free-kick from the left-hand side which Postiga met with an acrobatic diving header.
Valencia were quickly back in the game as Aly Cissokho got down the left wing and delivered a low cross into the Zaragoza box towards Roberto Soldado, who dummied, leaving the ball for an unmarked Jonas to control and finish with ease.
Valencia fashioned an equaliser on 69 minutes. Dani Parejo whipped in a free-kick which Ruiz headed towards the far post, and Jonas stuck out a leg to volley the ball in from barely two yards out.
Zaragoza played the final 11 minutes of the game with 10 men after goalkeeper Leo Franco was sent off for handling the ball outside his area, while Postiga had a late goal ruled out for a foul on Alves.
Getafe came from a goal down to beat Real Mallorca 3-1 at the Iberostar Stadium thanks to three goals towards the end of the second half.
Mallorca took the lead on 24 minutes when Giovani Dos Santos ran from the right-hand touchline and then cut into the box, beating a defender before driving a left-footed shot past Miguel Angel Moya.
The game changed 20 minutes from time when Mallorca captain Nunes was penalised for handball when the ball had struck in his chest and Diego Castro calmly converted the penalty.
Adrian Colunga then appeared in the box unmarked to head Federico's cross in off the post to give Getafe the lead with eight minutes remaining, and barely four minutes later he volleyed in a cross from substitute Jaime Gavilan to wrap up the points.