Osasuna breathed fresh life into the title race with a 2-1 win over Barcelona.
With Real Madrid and Valencia cancelling each other out on Saturday, Barca had the chance to move 12 points clear at the summit.
However, they found Osasuna in determined mood and slipped to defeat at Estadio El Sadar.
Barca were the architects of their own downfall, as keeper Victor Valdes gifted Valdo the opening goal when spilling a simple cross on 19 minutes.
It got worse for Barca after the break, as Edmilson was dismissed for a foul in the box on Savo Milosevic and Francisco Punal (pictured) slotted home the spot kick.
Henrik Larsson climbed off the bench and brought Barca back into the game when slotting home 20 minutes from time, although he did miss a sitter minutes earlier.
Barca failed to find a leveller and finished the game with nine men as Thiago Motta was dismissed in injury time.
Alaves and Athletic Bilbao moved out of the drop zone with wins over Sevilla and Cadiz respectively.
Sevilla came into the game harbouring hopes of claiming a spot in Europe and they led early on through Argentine star Javier Saviola.
However, Alaves are scrapping for their lives and goals from Nene and Rodolfo Bodipo secured the home side a vital three points.
The win was the first since Mario Luna was placed in charge, but it was not without incident as Bodipo and substitute Juanito were dismissed late on. Sevilla also had Aitor Ocio dismissed.
Bilbao were another side to climb out of the drop zone, but they left it late to claim a 1-0 win over fellow strugglers Cadiz. The game appeared to be heading for a draw, but Athletic were handed a late penalty and Tiko kept his nerve to slot home from 12 yards.
Real Betis slipped into the relegation places after a 1-1 draw with Malaga. Betis led thanks to a goal from David Rivas, but Antonio Hidalgo pinched a point for the visitors 17 minutes from time.
Mallorca took a point from their home clash with Villarreal. The home side led inside 60 seconds through Guillermo Pereyra, but they were pegged back by Jose Mari.
A brace from Veljko Paunovic lifted Getafe to a 2-1 win over Real Zaragoza whose goal came from Diego Milito.
A penalty from Fernando Torres and goal from Pablo Ibanez handed Atletico Madrid a 2-1 win over Racing Santander.