Wolfsburg edged closer to the Bundesliga title by crushing Hannover as Bayern Munich and Hertha Berlin drew, and Stuttgart won.
Karlsruhe remain in with a chance of avoiding relegation as Bochum secured their top-flight status for another season.
Edin Dzeko scored a hat-trick as Wolfsburg thrashed Hannover 5-0 away from home to stand on the brink of a first Bundesliga crown.
Jacek Krzynowek hit the post for Hannover after 10 minutes, but Wolfsburg were in front four minutes later when Dzeko headed home Makoto Hasebe's cross.
Grafite increased the lead on 33 minutes with a close-range finish and the prolific striker repeated the trick three minutes later.
Dzeko made it 4-0 on 54 minutes when nodding home Zvjezdan Misimovic's ball into the box before he completed his hat-trick by heading home another cross from Hasebe.
A point from next week's game at home to Werder Bremen is now likely to be enough to secure the title after reigning champions Bayern drew 2-2 at Hoffenheim.
Franck Ribery gave Bayern a 16th minute lead before Hoffenheim levelled on 21 minutes after Demba Ba was played in by Carlos Eduardo.
Hoffenheim took the lead on 28 minutes through Eduardo's finish after Wellington hit the post, but Bayern hit back a minute before half-time when Luca Toni headed home Ribery's cross.
Bayern now face Stuttgart, who beat Energie Cottbus 2-0, on the final day of the season with both teams two points adrift of Wolfsburg.
Stuttgart took the lead on 19 minutes when former Aston Villa midfielder Thomas Hitzlsperger crashed home a free-kick.
Cottbus hit the bar through Shao Jiayi on 76 minutes and, two minutes later, the visitors conceded a second goal when Cacau was played in by Mario Gomez.
Hertha Berlin's title hopes are over bar a mathematical miracle after a 0-0 draw at home to Schalke.
Karlsruhe remain bottom, but could yet secure a spot in the relegation play-off after an impressive 3-1 win at Werder Bremen.
Marco Engelhardt saw a third-minute penalty saved for Karlsruhe, who then hit the post on 18 minutes through Sebastien Freis.
Bremen striker Hugo Almeida was denied by the woodwork on 27 minutes and, 60 seconds later, Lars Stindl headed Karlsruhe in front.
Stindl increased the lead before the break and Aleksander Iashvili added another 10 minutes into the second half before Almeida scored Bremen's consolation.
Borussia Dortmund ran riot in the second half to crush Arminia Bielefeld 6-0 and leave the strugglers fretting over their Bundesliga status.
Sebastien Kehl broke the deadlock two minutes before half-time and Tamas Hajnal improved the scoreline eight minutes after the break.
Nelson Valdez, Kehl, Tinga and Mohamed Zidan all then scored in the final 20 minutes to give Dortmund an emphatic win.
Bayer Leverkusen were also in free-scoring mood after a 5-0 mauling of lowly Borussia Monchengladbach.
Stefan Kiessling and Patrick Helmes scored in the first half for Leverkusen, with Gonzalo Castro, Michal Kadlec and a Dante own goal on target in the second period.
Vahid Hashemian and Diego Klimowicz were the goalscorers as Bochum clinched safety with a 2-0 home win over Eintracht Frankfurt.
Fabrice Ehret scored a ninth minute goal as Cologne claimed a 1-0 victory at Hamburg.