Franck Kessie’s stoppage-time winner saw Barcelona sink Real Madrid in El Clasico and move 12 points clear at the top of LaLiga with 12 games to play.
Barca hit back after Ronald Araujo’s early own goal to level through Sergi Roberto on the stroke of half-time and set up the dramatic finale at the Nou Camp.
Kessie pounced to finish off a cross from Alejandro Balde for his first Barcelona goal and help his side take a big step towards another domestic title.
Borja Iglesias scored the only goal as Real Betis bounced back from their midweek European defeat to Manchester United with a 1-0 win over Mallorca.
Two late goals from Jose Luis Morales eased Villarreal to a 3-0 win at Osasuna, while Real Sociedad ended their run of four without a win and consolidated fourth place with a 2-0 win over Elche.
Goals from Munir El Haddadi and Enes Unal saw Getafe leapfrog Sevilla in the table with a 2-0 win.
Napoli took a giant stride closer to their first Serie A title since 1990 as Victor Osimhen scored twice in a crushing 4-0 win at Torino.
Osimhen, the league’s leading scorer, continued his fine form either side of a Khvicha Kvaratskhelia penalty, before a fourth from Tanguy Ndombele sealed another convincing win.
The weekend got better for Luciano Spalletti’s men as Inter Milan’s fractious defeat to Juventus in the late game left his side 19 points clear at the top of the table.
A stunning first-half strike from Filip Kostic proved enough to Juve to clinch the points at the San Siro, in a game that saw Inter’s Danilo D’Ambrosio and the visitors’ Leandro Paredes sent off for an altercation after the final whistle.
There were two more belated red cards in Rome where Lazio clinched bragging rights – and second place in the table – with a stormy 1-0 win over their city rivals.
Roma were reduced to 10 men in the first half when Roger Ibanez was shown two yellow cards, and Mattia Zaccagni’s 65th-minute effort from a tight angle proved enough to give Lazio the points.
Roma’s Bryan Crisante and Lazio’s Adam Marusic were sent off after the final whistle, while two members of the teams’ coaching staffs also saw red.
Two early goals from Manolo Gabbiadini gave Sampdoria hope as they beat fellow strugglers Verona 3-1, while an Antonino Gallo own goal helped Fiorentina beat Lecce 1-0.
Pressure continues to mount on Paris St Germain coach Christophe Galtier after his side suffered their first home defeat in Ligue 1 since April 2021.
Goals either side of half-time from Karl Toko Ekambi and Arnaud Kalimuendo claimed a stunning 2-0 win for Rennes and saw PSG’s lead at the top cut to eight points.
Two goals from Alexis Sanchez proved enough for second-placed Marseille to maintain the pressure with a 2-1 win at Reims, despite having to hit back after Folarin Balogun’s early opener.
Monaco consolidated fourth place with a 2-0 win at struggling Ajaccio, who had Cyrille Bayala sent off in the 53rd minute, and two goals from Elye Wahi saw Montpellier come from behind to beat Clermont 2-1
Strasbourg beat struggling Auxerre 2-0, Brest drew 2-2 draw at struggling Troyes, while Nice drew 1-1 with Lorient, who had Igor Silva sent off in injury time.
Bayern Munich missed the chance to move back to the top of the Bundesliga after two second-half penalties from Exequiel Palacios saw them sink to a 2-1 defeat at Bayer Leverkusen.
Joshua Kimmich had given Bayern a 22nd-minute lead but the hosts’ revival means Borussia Dortmund retain top spot by a point.
Union Berlin arrested their recent slide as they claimed their first win in five with a 2-0 success over Eintracht Frankfurt, with second-half goals from Rani Khedira and Kevin Behrens.
Karim Onisiwo’s added-time equaliser salvaged a point for Mainz against high-flying Freiburg.