LaLiga leaders Real Madrid came from 2-0 down to draw 2-2 with Valencia in an ill-tempered finish at the Mestalla that saw Jude Bellingham sent off after the final whistle.
The hosts scored two goals in four minutes midway through the first half from Hugo Duro and Roman Yaremchuk, but Vinicius Junior pulled one back on the stroke of half-time.
Vinicius then got a second in the 76th minute to level it up.
There was late drama as Valencia’s Mouctar Diakhaby suffered an apparently serious injury in the closing minutes. Moments after play restarted the referee pointed for a Valencia penalty after Nacho went flying in on Duro, but VAR came to Madrid’s rescue as the decision was overturned.
As the players went off, Bellingham was sent off, apparently for dissent, in what was his first match back after three games out with an ankle injury.
Youssef En-Nesyri’s early brace set Sevilla on their way to a 3-2 win over Real Sociedad.
Andre Silva pulled one back for the visitors in first-half stoppage time, but Sergio Ramos restored Sevilla’s two-goal advantage midway through the second half, with Brais Mendez’s late goal for Sociedad mere consolation.
Mason Greenwood was on the scoresheet as Getafe took a point from an entertaining 3-3 draw with Las Palmas.
Greenwood added to Jaime Mata’s early goal as the hosts roared into a two-goal lead inside 15 minutes. Sandro Ramirez pulled one back before Nemanja Maksimovic made it 3-1 at the break, but Las Palmas earned a point via second-half goals from Sergi Cardona and Munir El Haddadi.
Javi Hernandez’s stoppage-time goal cancelled out Florian Lejeune’s strike as Cadiz salvaged a point from a 1-1 draw at Rayo Vallecano.
Serhou Guirassy scored twice as Stuttgart won 3-2 at Wolfsburg to close the gap to second-placed Bayern Munich to four points.
Guirassy put Stuttgart in front after 14 minutes, and although Joakim Maehle levelled early in the second half, the Wolfsburg defender was soon guilty of fouling Enzo Millot in the box, giving Guirassy the opportunity to restore Stuttgart’s lead from the penalty spot.
Josha Vagnoman added a third in the 77th minute and they needed the cushion as Lukas Nmecha pulled one back for the hosts late on.
Borussia Dortmund remain fourth after goals from Karim Adeyemi and Ian Maatsen earned a 2-0 win at Union Berlin.
Leipzig stayed one point back in fifth with a 4-1 win at Bochum, who took a seventh minute lead though Maximilian Wittek but collapsed midway through the second half.
Dani Olmo levelled before the break, but three goals in five minutes from Lois Openda, Ivan Ordets and Yussuf Poulsen settled it before Bochum’s Moritz-Broni Kwarteng saw red late on.
Struggling Mainz took an early lead against Borussia Monchengladbach through Jonathan Burkhardt but could not hold on as Nathan N’Goumou levelled early in the second half, with Mainz’s Dominik Kohr sent off late on.
An embarrassing own goal from Benedikt Gimber helped Eintracht Frankfurt to a 2-1 win at Heidenheim, while Philip Tietz and Ermedin Demirovic scored two each as Augsburg thrashed Darmstadt 6-0.
Roma cruised to a 4-1 win over Monza. Lorenzo Pellegrini and Romelu Lukaku put them in control before half-time with Paulo Dybala adding a third before Leandro Paredes’ penalty. Andrea Carboni got a late consolation goal for the hosts.
Hassane Kamara struck in first-half stoppage time to cancel out Loum Tchanouna’s early goal as Udinese drew 1-1 with Salernitana, but the hosts finished with 10 men as Festy Ebosele saw red in the second half.
Torino and Fiorentina shared the points from a 0-0 draw in which Torino’s Samuele Ricci was sent off in first-half stoppage time.
Marseille had five different players on the scoresheet as they enjoyed a 5-1 away win at Clermont Foot.
Iliman Ndiaye got things started in the first half, and although Bilal Boutobba levelled early in the second half, Marseille seized control with strikes from Pierre-Emerick Aubameyang, Jonathan Clauss, Luis Henrique and Faris Moumagna.
Jonathan David’s 56th minute strike earned Lille a 1-0 win away to Reims.