A defensive calamity between Marc-Andre Ter Stegen and Clement Lenglet cost Barcelona dearly as Cadiz inflict a humiliating 2-1 defeat on Ronald Koeman’s side.
Martin Braithwaite kept his place in the Barca line-up after series of impressive performances, but there was little sign of the attacking fluidity demonstrated by the Catalans of late as Cadiz took a shock early lead.
A flick-on from a corner kick at the near post caused mayhem in the Barcelona penalty area, with Oscar Mingueza heading towards his own goal. Marc-Andre Ter Stegen did his best to keep it out, but Alvaro Gimenez finished on the line.
Koeman made two changes at the break, with Ousmane Dembele and Pedri coming off the bench. The pair had the desired effect as Barcelona drew level through a Jordi Alba cross which was deflected into the net by Pedro Alcala.
Disaster struck for the Catalans soon after, though, when Lenglet and Ter Stegen got themselves in an almighty mix-up, allowing substitute Alvaro Negredo to charge down the goalkeeper and finish into the empty net seconds after coming on.
The result means Cadiz have now done the double over Barcelona and Real Madrid in La Liga this season, with the promoted side moving above the Catalans in the table.