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 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.
Madrid 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 and his team paid the price.