Barcelona's title hopes were dealt a crushing blow as they slumped to a 1-0 defeat at struggling Granada, completing a nightmare week for the Catalan club after being dumped out of the Champions League by Atletico Madrid.
The match was settled by a solitary goal by Yacine Brahimi after 15 minutes, the Algerian racing through a Barca defence containing no natural centre-backs and scoring past Jose Manuel Pinto.
The visitors, who began without midfield metronome Xavi and first-choice full-backs Dani Alves and Jordi Alba, were unable to respond - thwarted on a number of occasions by Granada's outstanding goalkeeper Orestis Karnesis, who was making only his second start of the season.
The defeat to a team that began the match with 44 points fewer than Barca meant Gerardo Martino's men could finish the weekend four points behind Atletico, who visit Getafe on Sunday evening.
It was a vital win for Granada, however, who lost 4-1 to Malaga last weekend and began the day just three points above the relegation zone.
Martino made a raft of changes from the team that lost to Atletico in midweek, bringing in Martin Montoya, Adriano, Alex Song and Pedro, with Sergio Busquets moving to centre-back after Marc Bartra withdrew due to a hamstring problem.
Barca struggled to get into the game, their only early chances a soft header by Montoya into the arms of Karnesis, and a poor free-kick from Lionel Messi that went straight into the wall.
Martino's risky decision to employ two natural midfielders in central defence backfired after a quarter of an hour, when Fran Rico's low through ball split the defence open and Brahimi ran into the gap, holding off pressure from Montoya to knock the ball past Pinto and into the near corner.
Barca could only respond with half-chances, such as Andres Iniesta's wayward shot from range that flew over the bar, a Neymar header that also went over, plus a blocked shot from Cesc Fabregas.
Neymar went closest to equalising before the break with an ambitious curling shot from 30 yards, forcing Karnesis to leap across to his left and palm away for a corner.
The Brazilian was then hit in the chest by an elbow from Manuel Iturra, causing the play to stop for a couple of minutes, but eventually came back on.
Piti had Granada's only shot of the half after the goal, which was saved by Pinto, while at the other end, Montoya was unable to hit the target from a tight angle, and Fabregas was crowded out by five Granada defenders as he shaped to shoot.
Barca made a bright start to the second half. Messi teased a defender to send a cross across the face of goal, which was smashed behind for a corner by Allan Nyom.
Fabregas saw his half-volley turned round the post by Karnesis, and Neymar's low shot whistled across the face of goal and past the post.
Messi then unleashed a finely executed free-kick towards the top corner that was tipped away by Karnesis, and the Greece international thwarted Fabregas from the resulting corner, while Neymar shot over the bar under pressure.
Neymar finally got beyond the colossal Karnesis with 10 minutes remaining, but the ball was cleared off the line by Liverpool loanee Tiago Ilori.
Barca's night was summed up by a pitiful pass by substitute Alexis Sanchez with four minutes remaining, the Chilean sending the ball out of play as he looked to play in a team-mate.
Pinto prevented Youssef El Arabi from sealing the points at the end with a fine save, but it proved anecdotal, as Messi headed Barca's last chance to equalise over the bar.
The result meant Barcelona no longer have their destiny in their own hands, and must hope that Real and Atletico slip up in their final five games of the season.
And it will be another hammer blow to their confidence ahead of Wednesday's Copa del Rey final against Real Madrid.
Earlier, Jeremy Perbet headed a last-gasp goal for Villarreal to secure a 1-0 victory at home to regional rivals Levante that lifted them above Real Sociedad into sixth.
Sociedad twice surrendered the lead at Celta Vigo, who had defender Jon Aurtenetxe sent off two minutes after halftime, in a 2-2 draw at the Balaidos stadium.
Villarreal have 52 points, one ahead of Sociedad and one behind fifth-placed Sevilla, who visit city rivals Real Betis on Sunday.