La Liga leaders Barcelona tumbled to an embarrassing 1-0 defeat at Almeria on Sunday, failing to capitalise on Real Madrid's derby draw with Atletico to extend their advantage.
El Bilal Toure's fine first half strike split the teams and earned Almeria their first ever victory over Barca, inflicting only the second defeat of the league campaign on the Catalans.
Xavi Hernandez's side still have a seven-point lead over champions Madrid, but their morale took a further blow following their midweek Europa League exit against Manchester United.
Barca face Madrid in a Clasico Copa del Rey semi-final first leg on Thursday at the Santiago Bernabeu, with their vulnerabilities starting to show.
Victory over Almeria would have stretched their advantage in the title race to double figures, as they bid to win La Liga for the first time since 2019, but they could not capitalise on Madrid's 1-1 draw on Saturday against Atletico.
Carlo Ancelotti's Los Blancos beat Barcelona in the league in October in their first defeat and Almeria ended Barca's subsequent 13-game unbeaten league run.
"I'm very angry because I think we played our worst game of the season," Xavi told Movistar.
"Above all in the first half, we couldn't move the ball around, we lacked intensity, speed, on a day where we couldn't mess up.
"We did not show the passion (we needed) to win the game. In the second half, yes, but they defended well."
Xavi, already without injured trio Pedri, Ousmane Dembele and Ansu Fati, took a risk and rotated heavily, with Ronald Araujo, Jules Kounde, Raphinha and Alejandro Balde dropping out.
The Barcelona line-up lacked creativity on paper and so it proved, as they struggled to forge any chances of note in the first half at the Power Horse Stadium.
The lowly hosts, starting the game 19th with just one victory in their prior eight league games, were on top in the first half and went ahead through Toure's emphatic finish.
The Mali international cushioned a long ball into striker Luis Suarez's path, before spinning and breaking forward at pace.
Suarez lofted a pass over Andreas Christensen and Toure ran on to it, lashing an effort past Marc-Andre ter Stegen and in off the crossbar.
It was only the eighth league goal Barcelona have condeded this season, stopping Ter Stegen adding to his impressive tally of 17 clean sheets.
Xavi took action at half-time, replacing the ineffective Franck Kessie with Raphinha, reverting to a more traditional 4-3-3.
The coach was booked in the second half for arguing, while Gavi and Raphinha also saw yellow cards, with all three now suspended for Valencia's visit to Camp Nou next Sunday.
Marcos Alonso did well to block a powerful Suarez strike in the second half as Rubi's Almeria sought to double their lead.
The hosts kept La Liga top scorer Robert Lewandowski quiet at the other end, with the Polish striker and his team-mates unable to trouble Almeria goalkeeper Fernando Martinez.
Defender Araujo, thrown on by Xavi in desperation, directed a header inches wide of the far post but that was as close as Barcelona came.
Ter Stegen made a brilliant save to deny Adrian Embarba on the counter and Almeria defended bravely to see out an historic victory.
"We tried everything," added Xavi. "They defended very well, we had chances from crosses but none of them clear ones — it was not a good day for us."
Almeria rose to 15th, two points clear of the relegation zone, with Catalan coach Rubi recording his own first ever victory against Barcelona.
"The best team in the league came to us, they're first, and we were capable of blocking them, of taking advantage of the chance we had," Rubi told Movistar.
"We worked a lot, worked, worked and didn't leave any space."