Sevilla overtook Barcelona at the top of La Liga with a 3-1 victory at Recreativo de Huelva, while Real Madrid beat Espanyol 1-0
With Barca busy representing Europe at the Fifa Club World Cup in Japan, Sevilla made the most of their opportunity to pile on the pressure.
Luis Fabiano's 11th minute penalty was quickly cancelled out by Jesus Vazquez (19), but Fredi Kanoute (pictured) restored Sevilla's lead after 36 minutes and Jesus Navas (53) sealed the points.
Ruud van Nistelrooy was Real Madrid's match-winner against Espanyol as he kept up his fine form with a well-taken goal after 50 minutes
Fabio Cannavaro was sent off just five minutes later, although he was unlucky to pick up a second booking for handball as replays showed the ball had hit his face.
Real Sociedad twice came from behind to win the bottom-of-the table clash with Gimnastic de Tarragona 3-2.
Miguel Llera (18) and Castro Ruben (50) found the target for Gimnastic, but a Mingo own goal (49), followed by strikes from Juanito (56) and Diego Rivas (60) saw Sociedad take victory.
Villarreal were stunned 4-1 at home by Osasuna, who opened up a two-goal lead in the first half through Pierre Webo (14) and Javad Nekounam (43).
David Lopez then added a third from the penalty spot after 56 minutes, and Juanfran completed the rout (70) after Ruben Cani (62) had briefly raised Villarreal's hopes.
Celta Vigo drew 1-1 at Levante, with Fernando Baiano firing the visitors ahead after just two minutes but Alvaro pegging them back after 52.
Atletico Madrid climbed up to fourth with a 1-0 victory over Getafe in the day's final game, with Maniche grabbing the goal after 24 minutes.
Click below for individual match summaries: