Cadiz, who beat Barcelona 2-1 earlier in the season, get a last-minute draw
Lionel Messi scored on his club-record 506th La Liga appearance but Barcelona could only bounce back from their Champions League defeat by Paris St-Germain with a draw against Cadiz.
Messi's first-half penalty after Pedri was felled was cancelled out by Alex Fernandez's last-minute penalty.
Cadiz's equaliser, from their only shot on goal, ended Barca's seven-match-winning run in La Liga.
Barca can now be overtaken in third if Sevilla beat Osasuna on Monday.
Barcelona could have moved to within six points of leaders Atletico Madrid if they had overcome Cadiz, who brought their four-game losing run to an end with their late dramatics at the Nou Camp.
Apart from Ruben Sobrino bundling an awkward shot wide just minutes after Messi gave Barca the lead, Cadiz rarely threatened.
But the hosts were left frustrated as Messi's penalty – coolly taken after Pedri was sandwiched in a tackle between Salvi and Isaac Carcelen – was all they had to show despite controlling 81% possession and having 20 shots.
For the Argentine, who is out of contract at Barca in the summer and whose future at the Nou Camp remains a key point in the club's upcoming presidential elections, it was a milestone day as he passed former team-mate Xavi to set a new club record for Barca appearances in Spain's top flight.
Inspired Cadiz goalkeeper Jeremias Ledesma, who was instrumental in their 2-1 win over Barca in December, was again hugely influential as he made a string of saves to keep out Messi and Antoine Griezmann.
Frenkie de Jong and Pedri both also had goals disallowed before the break and Ousmane Dembele was lively for the hosts, but Cadiz earned their point with a stoic defensive display.
Clement Lenglet's foul on Sobrino ultimately proved decisive to give away the late penalty, with Fernandez converting.
Line-upsMatch StatsLive Text
1ter Stegen2Dest3Piqué15Lenglet18Alba21de Jong5Busquets16González11Dembélé10Messi7Griezmann1ter Stegen2DestSubstituted forMinguezaat 80'minutes3Piqué15Lenglet18Alba21de Jong5BusquetsSubstituted forPjanicat 65'minutes16GonzálezSubstituted forMachado Trincãoat 74'minutes11DembéléSubstituted forPuigat 80'minutes10Messi7GriezmannSubstituted forBraithwaiteat 65'minutes
8Pjanic9Braithwaite12Puig13Murara Neto17Machado Trincão19Fernandes Siqueira23Umtiti24Firpo26Peña28Mingueza
1Ledesma20Carcelén3Jiménez Jarque4López Gutiérrez22Espino5Garrido7Sánchez Ponce21Sobrino10Perea25Izquierdo18Negredo1Ledesma20Carcelén3Jiménez Jarque4López Gutiérrez22Espino5GarridoSubstituted forMartín-Bejarano Serranoat 58'minutesBooked at 85mins7Sánchez PonceSubstituted forAlejoat 62'minutesBooked at 82mins21Sobrino10PereaSubstituted forJonssonat 76'minutes25IzquierdoSubstituted forFernández Iglesiasat 59'minutes18NegredoSubstituted forLozanoat 59'minutes
2Jonsson6Martín-Bejarano Serrano8Fernández Iglesias9Lozano11Pombo12Saponjic13Gil14Alejo19Alcalá24Malbasic26Flere37Martín ValerónReferee:Juan Martínez Munuera
Home TeamBarcelonaAway TeamCádizPossessionHome81%Away19%ShotsHome20Away3Shots on TargetHome4Away1CornersHome8Away0FoulsHome13Away12
Match ends, Barcelona 1, Cádiz 1.