Luuk De Jong headed an equaliser deep in stoppage time to rescue Barcelona a 2-2 draw at derby rivals Espanyol.
Holland striker De Jong, on loan from Sevilla, headed home Wolves loanee Adama Traore's cross in the sixth minute of added time in an explosive finish, which also saw three players sent off.
Pedri’s early opener for Barca was cancelled out by Sergi Darder in the first period and then Raul De Tomas put Espanyol on course for a memorable victory before De Jong’s last-gasp header.
Barca defender Gerard Pique and Espanyol’s Nico Melamed were sent off for second bookable offences in added time for clashing after challenging for the ball.
Espanyol midfielder Manu Morlanes received a straight red soon after De Jong’s leveller for dissent.
Real Betis bounced back from last week’s home defeat to Villarreal with a 4-2 win at Levante to consolidate in third place in LaLiga.
Nabil Fekir, Edgar Gonzalez and William Carvalho all scored for Betis in the first half and, although Dani Gomez struck either side of the break for Levante, Fekir added his second soon after.
Real Sociedad maintained their pursuit of a top-six finish and extended their unbeaten league run to five games as goals in either half from Mikel Oyarzabal and Rafinha secured a 2-0 home triumph over Granada.
Alaves gave their survival hopes a lift with their first win in 12 league matches, 2-1 against Valencia.
Joselu’s 76th-minute penalty made sure of the points for Alaves, who had seen Mamadou Loum’s early opener cancelled out by Goncalo Guedes’s spot-kick just after the hour mark.
Borussia Dortmund reignited their Bundesliga title challenge with a convincing 3-0 win at Union Berlin.
Dortmund, beaten 5-2 at home by Bayer Leverkusen last week, led 2-0 at half-time thanks to Marco Reus’ double and Raphael Guerreiro added a third.
Hoffenheim boosted their Champions League hopes as goals in either half from Benjamin Hubner and Georginio Ruttier secured a 2-0 home triumph against Arminia Bielefeld.
AC Milan leapfrogged Inter Milan to the top of Serie A with a 1-0 win over Sampdoria, thanks to Rafael Leao’s early goal at the San Siro.
Portugal forward Leao’s 10th goal of the season in the eighth minute lifted Stefano Pioli’s side one point clear of their city rivals, who were held 1-1 at third-placed Napoli on Saturday.
Danilo headed a stoppage-time equaliser for Juventus, who lost further ground on the top two after a 1-1 draw at Atalanta.
Brazil defender Danilo rescued fourth-placed Juve in the second minute of added time after Ruslan Malinovskyi had given the home side a second-half lead.
Bryan Cristante’s stoppage-time header snatched seventh-placed Roma a 2-2 draw at Sassuolo.
Cristante struck in the fourth minute of added time to deny Sassuolo, whose defender Gian Marco Ferrari was shown a straight red card in the second half for his crude challenge on former Chelsea striker Tammy Abraham.
Abraham’s 17th goal of the season had given Jose Mourinho’s Roma a half-time lead before the home side hit back through Chris Smalling’s own goal and Hamed Traore’s low finish.
Verona made it three wins from four by thrashing Udinese 4-0 at home.
Fabio Depaoli and Antonin Barak gave Verona a two-goal interval lead before Gianluca Caprari and Adrien Tameze added to the scoring in the second half.
Leonardo Pavoletti’s late equaliser earned third-bottom Cagliari a much-needed point in a 1-1 draw at Empoli, who had led through Andrea Pinamonti’s first-half effort.
Genoa were held at home by bottom club Salernitana by the same score, with visiting striker Federico Bonazzoli cancelling out Mattia Destro’s opener in first-half stoppage time.
Marseille continue to lead the chasing pack behind runaway Ligue 1 leaders Paris St Germain after a 2-1 win at Metz.
Arkadiusz Milik fired a late winner for Marseille after Cedric Bakambu’s first-half opener had been cancelled out by Metz’s Digbo Maiga.
Strasbourg closed to within a point of the Champions League places as Kevin Gameiro’s solitary strike clinched a 1-0 win at Angers.
Monaco lost ground on the top three after being held 0-0 at home by lowly Lorient and relegation battlers St Etienne made it back-to-back wins with a 2-1 victory at Clermont.
Brest registered their biggest win of the campaign, 5-1 at home against Troyes, and Lens and Nantes secured 1-0 and 3-2 home wins against Reims and Bordeaux respectively.