Werder Bremen responded to back-to-back home defeats with an emphatic 5-1 away victory over bottom side Paderborn.
In pouring rain, Bremen's Davy Klaassen netted either side of a goal by Japanese forward Yuya Osako to make it 3-0 at half-time.
It could have been 4-0 as Bremen forward Milot Rashica had a penalty saved.
Midfielder Maximilian Eggestein made it 4-0 with an hour gone before Paderborn's Moroccan-born substitute Abdelhamid Sabiri scored their consolation goal.
Just 15 minutes after coming on for his first appearance for nine months after tearing knee ligaments, Bremen striker Niclas Fuellkrug capped a fairytale return when he slotted home the fifth goal on 90 minutes.
With three games left to stay up, Bremen host Bayern on Tuesday, then Mainz, who are also fighting to survive, and mid-table Cologne.
Ten-man Hertha Berlin were thumped 4-1 at home by Eintracht Frankfurt after their Belgium defender Dedryck Boyata was sent off on the stroke of half-time for bringing down Bas Dost, who was through on goal.
Krzysztof Piatek gave Hertha an early lead at Berlin's Olympic Stadium, but Frankfurt roared back with unanswered goals by Dost, two from Portuguese forward Andre Silva and French defender Evan Ndicka.
Freiburg came from two goals down to earn a 2-2 draw at Wolfsburg in a game dominated by VAR.
Wolfsburg raced into a 2-0 lead inside 30 minutes when Dutch striker Wout Weghorst finished off a sweeping move, then converted a penalty.
Weghorst also had his head heavily bandaged after an accidental kick in the face.
Wolfsburg had two goals by Daniel Ginczek ruled out by the VAR and it finished 2-1 at half-time as Freiburg pulled a goal back through midfielder Lucas Hoefler.
Hungarian Roland Sallai equalised just after the break.
After picking up just two points in their previous five games since the Bundesliga restart in mid-May, FC Union got their fist win since February with a 2-1 win at Cologne.
Goals by defender Marvin Friedrich and midfielder Christian Gentner sealed the victory which pulled Union up to 13th, seven points from the bottom three.
(With inputs from AFP)