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.
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.
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.
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.