BERLIN — Arjen Robben scored in the fifth minute of injury time for Bundesliga champion Bayern Munich to come back from two goals down and beat Leipzig 5-4 on Saturday.
"It was a crazy game," said Bayern coach Carlo Ancelotti, whose side wrapped up the title two weeks ago.
Ingolstadt, which drew at Freiburg 1-1, was relegated in dramatic fashion as Sead Kolasinac’s apparent injury-time winner for Schalke against relegation rival Hamburger SV was ruled out, leaving Ingolstadt four points adrift of Hamburg with one round left.
Hamburg gained a point thanks to Pierre-Michel Lasogga’s goal in the second minute of injury time for 1-1. It remained in the relegation playoff spot ahead of a decisive game against Wolfsburg on the final day of the season.
Watch match highlights: Hoffenheim 5, Werder Bremen 3 || RB Leipzig 4, Bayern Munich 5 || Schalke 1, Hamburg 1 || Mainz 4, Eintracht Frankfurt 2 || Darmstadt 0, Hertha Berlin 2 || Augsburg 1, Borussia Dortmund 1 || Bayer Leverkusen 2, Cologne 2 || Wolfsburg 1, Borussia Monchengladbach 1 || Freiburg 1, Ingolstadt 1
"We have to seal the deal against Wolfsburg next Saturday," Hamburg coach Markus Gisdol said.
Bayer Leverkusen was effectively safe after its drawing with Cologne 2-2 in the Rhine derby.
Bayern got off to a bad start at second-placed Leipzig when Marcel Sabitzer opened the scoring in the second minute.
Robert Lewandowski equalized from the penalty spot for his 150th Bundesliga goal.
Timo Werner restored the home side's lead with another penalty after Xabi Alonso brought down Emil Forsberg, and it got worse for the champions when Forsberg set up Yussuf Poulsen to make it 3-1 after the break.
Thiago Alcantara pulled one back for Bayern, but the visitors' defence was again made to look poor when Werner scored his second, this time through Tom Starke's legs from a difficult angle. It was his 21st goal.
"For a long time we looked like the winners against the best team in Germany," Leipzig coach Ralph Hasenhuettl said.
Three goals from the 84th minute restored Bayern's pride.
Lewandowski claimed his league-leading 30th on a rebound after Robben hit the crossbar, David Alaba equalized with a free kick, and Robben capped a remarkable recovery with a fine individual effort.
BAYER LEVERKUSEN 2, COLOGNE 2
Cologne blew a 2-0 lead and Leverkusen salvaged the draw to go three points clear of Hamburg. Leverkusen's goal difference effectively guarantees it will finish above Hamburg.
SCHALKE 1, HAMBURGER SV 1
Lasogga equalized for Hamburg in injury time, then Kolasinac thought he'd sealed a Schalke win but the goal was ruled out as the ball went out of play.
WOLFSBURG 1, BORUSSIA MOENCHENGLADBACH 1
Mario Gomez equalized before the hour-mark to leave Wolfsburg two points above Hamburg ahead of the sides' meeting on the final weekend.
MAINZ 3, EINTRACHT FRANKFURT 2
Frankfurt was cruising at 2-0, but Mainz scored twice in two minutes to draw level. Yoshinori Muto completed a remarkable comeback to boost Mainz's hopes of survival. Mainz was two points above Hamburg going into the final weekend.
AUGSBURG 1, BORUSSIA DORTMUND 1
Augsburg was also two points clear of Hamburg before the season finale.
Augsburg scored first and Dortmund equalized to stay third on goal difference from Hoffenheim.
Dortmund midfielder Julian Weigl broke his ankle in a challenge, ruling him out for three to four months.
WERDER BREMEN 3, HOFFENHEIM 5
Hoffenheim dented Bremen's hopes of European football and moved level on points with Dortmund. Hoffenheim, which is assured of at least a Champions League playoff spot, can secure direct qualification by taking advantage of any Dortmund slipup on the final weekend.
DARMSTADT 0, HERTHA BERLIN 2
Hertha ended its nine-game losing streak away from home at already relegated Darmstadt. Hertha moved to fifth and looked assured of Europa League qualification.