Bayern Munich won their fourth straight Bundesliga title after they beat Ingolstadt 2-1 as Borussia Dortmund lost 1-0 to Eintracht Frankfurt.
Bayern clinched their 25th Bundesliga title with a game of the season to spare.
Robert Lewandowski’s 28th and 29th goals of the season, the first coming from the penalty spot, put one hand on a fourth straight league title for the Bavarians.
Moritz Hartmann made them wait to make sure as he pulled a goal back from the penalty spot, but there was to be no fairy-tale recovery for the smaller of the two Bavarian clubs as their illustrious neighbours took the points and the title.
Eintracht Frankfurt boosted their survival hopes with a win over Dortmund that boosted them three points clear of the relegation zone with one game remaining.
Stefan Aigner’s 14th-minute strike was enough for Niko Kovac’s men to win, leaving Frankfurt needing just a point from their final day-trip to Werder Bremen to stay up.
Borussia Monchengladbach all but mathematically joined Bayer Leverkusen in qualifying for the Champions League next season after coming from behind to beat their local rivals 2-1 at home.
Charles Aranguiz put the visitors in front with his first goal in German football, but two goals from Andre Hahn earned Gladbach all three points.
That puts them three points ahead of Mainz, Hertha Berlin and Schalke, with their far superior goal difference meaning they can already start celebrating a second straight season in European football’s elite club competition.
Hertha Berlin saw their hopes of qualifying for the Champions League next season all but ended by a Darmstadt side who secured their place in Germany’s top flight next season with a 2-1 win in the capital.
Relegated Hannover gave their fans something to celebrate in their final home game with a 1-0 win over Hoffenheim.
Wolfsburg ended a seven-game wait for a win by beating rivals Hamburg 1-0.
Augsburg left it late to dent Schalke’s hopes of qualifying for the Champions League next season and secure their place in the top flight with a 1-1 draw at the Arena AufSchalke.
Werder Bremen need a win on the final day of the season to avoid a relegation playoff or even worse after they came away from Cologne with only a point from a 0-0 draw.