Federico Valverde’s first-half goal proved the derby decider after Real Madrid sealed a 2-1 victory at Atletico Madrid.
The visitors got things started after Aurelien Tchouameni sent a perfect pass over a wall of red and white shirts to find an onrushing Rodrygo, who fired a rocket into the roof of the net.
Vinicius Jr nearly doubled their advantage from a drive down the left but watched his effort ping off the near post – but Valverde was there to pounce on the rebound and send the defending La Liga champions into the second half up by two.
Atletico could not take advantage of several early set-pieces after the restart and several second-half substitutions from Diego Simeone failed to ignite a momentum shift.
But a late corner saw the ball bounce off Mario Hermoso and in on 83 minutes, the lucky break ultimately denying Real Madrid the clean sheet but not the win, Hermoso not helping matters after getting sent off in stoppage time.
Vinicius had spoken out in the build-up to the match about recent racist abuse, promising to continue his celebration dances undeterred, and joined Rodrygo to show off his moves as promised after the opener.
Both sides were eventually down to 10 men in Getafe’s 2-0 win at Osasuna.
The hosts found themselves a man down late in the first half after Chimy Avila was sent off following a VAR check of his collision with Juan Iglesias, who had opened the scoring on 30 minutes.
Gaston Alvarez added the Azulones’ second at the 76-minute mark before they too were down to 10 men when Luis Milla was shown red in added time.
Elsewhere, Real Betis and Real Sociedad both secured three points at home with 2-1 wins over Girona and Espanyol respectively, while Sevilla played out a 1-1 draw with Villarreal.
In France, Lionel Messi surpassed Cristiano Ronaldo’s total of 671 non-penalty goals, his fifth-minute strike all that was necessary for Ligue 1 leaders PSG to make it four in a row with a win at Lyon.
Jean-Clair Todibo was sent off in the first minute of Nice’s 1-0 loss to Angers, Nabil Bentaleb making the difference in a match that also saw Sofiane Boufal shown red in the second half.
Second-placed Marseille could only muster a 1-1 draw with Rennes, Matteo Guendouzi scoring for both teams, while Nantes and Lens’ contest ended goalless.
Bradley Locko was sent off in the 22nd minute of Reims’ clash with Monaco, the red card proving costly as the visitors went on to win 3-0.
Ajaccio beat Brest 1-0, while Troyes took three points from home side Clermont in a 3-1 victory.
Napoli edged out a close 2-1 contest with Milan to remain top of the Serie A table.
All three goals came in the second half of the cagey contest with Matteo Politano converting a penalty to hand the visitors the lead on 55 minutes.
Olivier Giroud responded for Milan 14 minutes later before Giovanni Simeone nodded in the game-winner and handed the defending champions their first defeat of the season.
Atalanta kept pace with the league leaders after Giorgio Scalvini’s first-half strike was enough to hand them a 1-0 victory over Roma.
But the game was mostly marked by pitch-side drama, which saw Roma boss Jose Mourinho sent off after arguing with the referee over what he believed to be a second-half penalty.
Udinese remained in third place with a 3-1 win over Inter, who opened the scoring through Nicolo Barella on five minutes but saw it cancelled out with a Milan Skriniar own goal before Jaka Bijol and Tolgay Arslan put the game away.
Christian Gytkjaer lifted Monza to a 1-0 win over Juventus, who were down to 10 men after Angel Di Maria was sent off late in the first half.
Lazio sealed a dominant 4-0 win at Cremonese while Fiorentina won 2-0 against Verona.
Jordan Siebatcheu and Sheraldo Becker lifted surprise Bundesliga leaders Union Berlin to a 2-1 victory over Wolfsburg.
Cologne split the points in a 1-1 draw at VfL Bochum, and Hoffenheim played out a goalless draw with Freiburg.