Bayern, Dortmund earn wins
Bayern Munich warned up for Wednesday's Champions League semi-final against Real Madrid by cruising to 2-0 Bundesliga win at bottom club Eintracht Braunschweig.
The visitors held out until the 75th minute when Claudio Pizarro put Pep Guardiola's men in front before Mario Mandzukic sealed the points five minutes from time.
Bayern's win ended an unlikely run of three Bundesliga games without a win, while it left their opponents at the foot of table with just three games of the season remaining.
Borussia Dortmund guaranteed their place in next season's Champions League with a 4-2 win over Mainz at the Westfalenstadion.
Milos Jojic gave the hosts an early lead, which was soon cancelled out by Shinji Okazaki. Robert Lewandowski then put Dortmund ahead once again, only for that too to be pegged back as Okazaki levelled for a second time.
Lukasz Piszczek added a third for Dortmund and this time there was no way back for the visitors as a Marco Reus penalty completed the win after Niko Bungert had been shown a red card.
Hamburg remain in danger of the first relegation in their history after a 3-1 home defeat to Champions League-chasing Wolfsburg.
Ivan Perisic, Kevin De Bruyne and Ivica Olic scored for Wolfsburg, who had Luiz Gustavo sent off late on.
Ivo Ilicevic scored a late consolation for Hamburg, who could drift four points from guaranteed safety if relegation rivals Stuttgart beat Schalke on Sunday.
Freiburg struck four times in the second half to all but secure top-flight survival with a 4-2 win over Borussia Monchengladbach, whose top-four aspirations took a hit.
The hosts trailed to a Patrick Herrmann goal, but a double from Admir Mehmedi, a goal of the season contender from Oliver Sorg and one courtesy of record signing Vladimir Darida put some gloss on an incredible performance from the hosts.
Gladbach cut the arrears in the 89th minute when Havard Nordtveit netted.
Werder Bremen also extinguished lingering relegation fears with a 3-1 win over Hoffenheim.
Kevin Volland had stuck Markus Gisdol's men ahead within three minutes, but a rallying response from Werder, through goals from Philipp Bargfrede, Santiago Garcia and Nils Petersen, won the points.
Hoffenheim's Sejad Salihovic also missed a penalty on 86 minutes which would have levelled the game at 2-2.
Mid-table pair Hertha Berlin and Augsburg played out a goalless stalemate at Berlin's Olympiastadion.