Bayern Munich moved seven points clear at the top of the Bundesliga with a 1-0 win at title rivals RB Leipzig.
Midfielder Leon Goretzka broke the deadlock at the Red Bull Arena when he fired a cutback from Thomas Muller into the top corner late in the first half.
Marcel Sabitzer forced Bayern keeper Manuel Neuer into a fine save with a long-range effort, but Leipzig could not find an equaliser as Bayern recorded a seventh straight win in all competitions.
Borussia Dortmund slipped further off the pace as they were beaten 2-1 at home by Eintracht Frankfurt.
Andre Silva struck a winner with three minutes left to move Frankfurt seven points clear of Dortmund in the battle for Champions League qualification.
Josip Brekalo’s strike midway through the second half was enough to give third-placed Wolfsburg a 1-0 home win against strugglers Cologne while Bayer Leverkusen kept up their European qualification push with a 2-1 victory over bottom club Schalke.
A late goal from Andreas Voglsammer helped relegation-battlers Arminia Bielefeld secure a 1-1 draw at Mainz, a brace from Marcus Thuram saw Borussia Monchengladbach come from behind to beat Freiburg 2-1 while Augsburg were 2-1 winners against Hoffenheim.
Marco Asensio and Karim Benzema were on target in each half as Real Madrid marked Zinedine Zidane’s 250th game in charge with a 2-0 win over Eibar.
Victory moves Real above Barcelona and three points behind Atletico Madrid ahead of next weekend’s El Clasico.
Real Sociedad won the 2020 Copa del Rey final with a 1-0 victory over Basque rivals Athletic Bilbao in Seville.
Mikel Oyarzabal’s penalty just after the hour proved enough to secure the silverware for the delayed competition, which was rescheduled because of the coronavirus pandemic.
Elsewhere in Spain, a hat-trick from Gerard Moreno saw Villarreal win 3-0 at Granada while Osasuna versus Getafe ended goalless.
Serie A leaders Inter Milan tightened their grip at the top of the table with a 1-0 win at Bologna.
Romelu Lukaku’s 32nd-minute goal edged the Nerazzurri closer to their first Scudetto in more than a decade.
Earlier, rivals AC Milan drew 1-1 against 10-man Sampdoria and now find themselves eight points off Inter having played one game more.
Cristiano Ronaldo headed in an equaliser with 10 minutes left as Juventus drew 2-2 in the Derby della Mole at Torino.
Luis Muriel scored twice as Atalanta beat Udinese 3-2 to keep themselves in the driving seat for Champions League qualification and Napoli edged out bottom club Crotone 4-3.
Lazio had Manuel Lazzari and Joaquin Correa sent off during stoppage time of their 2-1 win over Spezia while Roma saw their European push dented with a 2-2 draw at Sassuolo.
Franck Ribery was sent off in the second half as Fiorentina drew 1-1 at Genoa, Parma drew 2-2 at Benevento while Hellas Verona beat Cagliari 2-0.
Lille moved back to the top of Ligue 1 with a hard-fought 1-0 win at Paris St Germain, who had Neymar sent off late on.
A deflected effort from Canada international Jonathan David settled the game, while Brazil forward Neymar and Lille defender Tiago Djalo were both dismissed after the pair clashed late on.
PSG trail Lille by three points with seven matches left.
Elsewhere, Cesc Fabregas was on target in Monaco’s 4-0 win over Metz 4-0 while Lens and Lyon drew 1-1.