Luca Waldschmidt's late winner condemned Wolfsburg to Bundesliga's relegation play-off as Hamburg survived on the final day.
Arjen Robben scored deep into stoppage time as Bundesliga champions Bayern Munich twice battled back to clinch a spectacular 5-4 victory over RB Leipzig.
Juan Bernat's early goal was enough to give champions Bayern Munich a 1-0 victory over Darmstadt and send the visitors down.
Hoffenheim moved up to third place in the Bundesliga with a 1-0 victory over Eintracht Frankfurt, while Augsburg thrashed Hamburg.
Bayern Munich secured their fifth consecutive Bundesliga title with a 6-0 rout of Wolfsburg on Saturday.
Borussia Dortmund ended a difficult week with a 3-1 win over Eintracht Frankfurt while Bayern Munich were held by Bayer Leverkusen.
Hertha Berlin ended their losing streak and moved into fifth place in the Bundesliga with a 2-0 win over strugglers Augsburg.
Laszlo Benes' first Bundesliga goal gave Borussia Monchengladbach a 1-0 home victory against Hertha Berlin.
RB Leipzig missed the opportunity to close the gap on Bundesliga leaders Bayern Munich after suffering a 3-0 defeat at Werder Bremen.
Schalke earned a much-needed 3-0 victory over fellow Bundesliga strugglers Augsburg to ease their fears of relegation.
RB Leipzig missed the chance to close the gap to Bayern Munich to two points after they drew 2-2 at Augsburg.
Javier Hernandez scored twice for Bayer Leverkusen as they beat Augsburg 3-1 in the Bundesliga on Friday evening.
Mainz brought a run of four games without a win to an end with a 2-0 victory over Augsburg at the Coface Arena.
Raul Bobadilla struck late on to snatch a 3-2 Bundesliga win for Augsburg over Werder Bremen, as Eintracht Frankfurt beat Darmstadt 2-0.
Bundesliga leaders Bayern Munich saw their winning run come to an end as Schalke battled to a 1-1 draw at the Allianz Arena.
Red Bull Leipzig moved back to within two points of Bundesliga leaders Bayern Munich with a comfortable 3-0 win over Eintracht Frankfurt.
Hoffenheim suffered their first Bundesliga defeat of the season as they went down 2-1 at RB Leipzig.
Augsburg have given interim coach Manuel Baum "a long-term contract" after he impressed in his first two games in charge.
Borussia Dortmund drew their third game in a row as Augsburg secured a 1-1 tie at the Westfalenstadion.
Augsburg have sacked head coach Dirk Schuster after just six months in charge.