Substitute Alvaro Negredo handed top-flight new boys Cadiz another prized La Liga scalp as they clung on to claim a 2-1 win over Ronald Koeman's ailing Barcelona.
Negredo pounced on a defensive mix-up to grab the 63rd minute winner after a Pedro Alcala own goal had cancelled out Alvaro Gimenez's early opener.
Jeremias Ledesma made a series of superb saves as Cadiz, who beat Real Madrid earlier this season, held on to hand Koeman more frustration.
Real Madrid ended a run of three league games without a win as they earned a hard-fought 1-0 win at Sevilla.
Home keeper Yassine Bounou fumbled a weak shot from Vinicius Jr. in the 55th minute to give Zinedine Zidane's men a barely-deserved three points.
Second-placed Atletico Madrid maintained the pressure on leaders Real Sociedad as second-half goals from Thomas Lemar and Marcos Llorente gave them a 2-0 win over Real Valladolid.
Struggling Levante earned their first win in nine games with a 3-0 triumph over Getafe, who had both Chema Rodriguez and Djene Dakonam sent off.
Achraf Hakimi scored twice as Inter Milan held onto second place in Serie A with a 3-1 win over Bologna.
Romelu Lukaku opened the scoring before Hakimi doubled his side's lead on the stroke of half-time.
Bologna reduced the deficit through Emanuel Vignato but Hakimi's second in the 70th minute sealed victory.
Juventus came from behind to win the Turin derby against Torino, who led for much of the match through Nicolas Nkoulou's ninth-minute strike.
But Juve hit back through two headers in the last 13 minutes from Weston McKennie and Leonardo Bonucci, after which substitute keeper Carlo Pinsoglio was sent off for his excessive celebrations.
Goals from Ciro Immobile and Sergej Milinkovic-Savic saw Lazio hit back from last week's loss to Udinese with a 2-1 triumph at Spezia.
Kingsley Coman claimed a hat-trick of assists as Bayern Munich held onto top spot in the Bundesliga with a 3-3 draw against second-placed RB Leipzig.
Leipzig led early through Christopher Nkunku and an Emil Forsberg effort early in the second half put them back in front before Thomas Muller's second in the 75th minute came to Bayern's rescue.
Borussia Dortmund lost ground on the two teams above them as they were held to a 1-1 draw at Eintracht Frankfurt, Giovanni Reyna grabbing a point in the 56th minute after Daichi Kamada's opener for the hosts.
Wolfsburg twice came from behind to claim a 2-2 draw at Koln, while Arminia Bielefeld broke a run of seven straight losses with a 2-1 win over fellow strugglers Mainz.
Freiburg are now nine games without a win after they were held to a 2-2 draw at home by Borussia Monchengladbach.
Kylian Mbappe became only the fifth player to reach 100 goals for his club as PSG struck late to end Montpellier's four-game winning streak in Ligue 1.
Colin Dagba's opener for PSG was cancelled out by Montpellier's Stephy Mavididi, but two goals in the last eight minutes from Moise Kean and Mbappe earned the leaders a 3-1 win.
Arnaud Muinga and Ignatius Ganago were on the scoresheet as Lens won 2-0 at Rennes to extend the hosts' winless run to seven games in all competitions.