Barcelona effectively waved goodbye to their already slim title chances when they were dealt their first defeat in 18 matches, a 1-0 loss at struggling Celta Vigo on Saturday.
Brazilian midfielder Edu struck the winner when he curled a low shot inside the post from the edge of the area after a neatly worked move two minutes before the break.
With two games to play Barcelona remain a point behind Real Madrid and five adrift of leaders Valencia, both who have yet to play this weekend.
Valencia, who have a tricky trip away to UEFA Cup finalists Sevilla on Sunday, lead the table on 74 points. Real Madrid, who host Real Mallorca at the Bernabeu later on Saturday, have 70 and Barca 69.
The win lifts Celta out of the relegation zone but with all their immediate rivals still to play they could end up back in trouble before the weekend is out.
Celta, who finished fourth in last year's championship but have been in the danger zone for much of this season, made an aggressive start as they hunted down the Catalans in midfield and gave them little time on the ball.
They had a first chance to take the lead in the 21st minute when Argentine defender Fernando Caceres volleyed just over the bar and although the Galicians have the worst home record in the league having won just three games in their own stadium all season, Barca were rarely able to get close to their area.
Celta took a deserved lead when Brazilian midfielder Edu guided a low shot round Valdes from just inside the area after Alexander Mostovoi had laid the ball back to him following a Juan Velasco cross.
Barca took the game to their opponents after the break, but they were given no change by the inspired Celta back four and it was the home side who should have extended their lead when they were awarded a penalty midway through the half.
The referee pointed to the spot after Edu was pulled back by Oleguer Presas as he stepped into the area after jinking inside off the left wing, but Valdes tipped Peter Luccin's spot kick on to a post.
Barca could have grabbed a draw five minutes from time, but defender Juanfran headed Javier Saviola's goal-bound shot off the line to the relief of the 32,000 Celta fans in the Balaidos stadium.