Borussia Dortmund are one win away from clinching the Bundesliga title after a 3-0 victory at Augsburg.
Bayern Munich’s loss to Leipzig on Saturday opened the door for Dortmund and they seized their opportunity, moving within three points of ending the Bavarian club’s 10-year reign as German champions.
Sebastian Haller – who missed the first half of the season as he battled cancer – scored twice and Julian Brandt once after Felix Uduokhai had been sent off for Augsburg.
Victory over Mainz on the final day of the campaign next Saturday would see Dortmund clinch their first Bundesliga crown for 11 years, but anything less would open the door for Bayern to win an 11th straight title.
Mainz suffered a 4-1 home defeat to struggling Stuttgart on Saturday despite taking the lead, while Lars Stindl scored a 90th-minute equaliser to earn Borussia Monchengladbach a 2-2 draw with Bayer Leverkusen.
In Spain, Real Madrid’s miserable week was compounded by a 1-0 defeat to lowly Valencia.
Four days after their humbling by Manchester City in the Champions League, Real went down to Diego Lopez’s 33rd-minute goal.
The match was soured by more complaints of racist abuse directed at Vinicius Junior, with the game briefly halted after the Brazilian appeared to point out offenders in the crowd.
He was then shown a straight red card for lashing out at Hugo Duro in stoppage time.
The result eased Valencia’s LaLiga relegation fears while Real dropped to third place in the table behind city rivals Atletico Madrid, who defeated Osasuna 3-0 with goals from Yannick Carrasco, Saul Niguez and Angel Correa.
Espanyol gave themselves a lifeline in the battle at the bottom with a 2-1 victory at Rayo Vallecano while the Seville derby ended in a goalless draw between Sevilla and Real Betis, who had Juan Miranda sent off late on.
In Serie A, Inter Milan were brought back down to earth after reaching the Champions League final, falling to a 3-1 defeat against champions Napoli.
The visitors were reduced to 10 men when Roberto Gagliardini was sent off before half-time and Andre-Frank Zambo Anguissa put Napoli ahead midway through the second half.
Romelu Lukaku drew the 10 men level with eight minutes to go but Napoli responded emphatically with goals from Giovanni Di Lorenzo and Gianluca Gaetano.
Inter dropped to fourth in the table behind Lazio, who beat Udinese 1-0 thanks to Ciro Immobile’s penalty.
Torino and Fiorentina drew 1-1 while strugglers Lecce and Spezia had to settle for a point each in a 0-0 draw.
Paris St Germain all but wrapped up another Ligue 1 title thanks to an early double from Kylian Mbappe in a 2-1 victory over Auxerre.
The France star scored in the sixth and eighth minutes, with Lassine Sinayoko replying for Auxerre in the second half, to move PSG six points clear of Lens with only two games left and with a far superior goal difference.
Lens ensured it is not yet mathematically over with a 3-1 victory at Lorient. Romain Faivre put the hosts ahead early on but goals from Florian Sotoca and Adrian Thomasson turned the match around before half-time and Seko Fofana made sure of the points late on.
Rennes boosted their European hopes by thumping relegated Ajaccio 5-0. Amine Gouiri scored a hat-trick while Mickael Alphonse was sent off for the Corsican side.
Brest defeated Clermont 2-1 while there were draws between Nice and Toulouse, Reims and Angers and Troyes and Strasbourg.