Bastian Schweinsteiger scored the only goal of the game 10 minutes from time as Bayern pulled 15 points clear of Wolfsburg, who can reduce the arrears to 12 points again when they face Borussia Monchengladbach on Sunday.
Slightly lower down the table, Borussia Dortmund closed in on the Bundesliga top six and a place in Europe next season thanks to a 2-0 win over Eintracht Frankfurt at the Westfalenstadion.
Pierre-Emerick Aubameyang gave Jurgen Klopp’s men the lead from the penalty spot before Shinji Kagawa added a second goal.
It was enough to earn Dortmund all three points and take them to within a win of the European positions, setting them up also for their DFB-Pokal semi-final tie with Bayern Munich on Tuesday.
Michael Frontzeck’s debut as Hannover coach ended in defeat as his side went down 2-1 at home to Hoffenheim on Saturday.
Anthony Modeste gave the visitors the lead within a minute but Lars Stindl levelled from the spot and it looked like Hannover might well go on to get their first win of 2015.
They did not manage to take their chances, though, and Sven Schipplock struck with seven minutes to go to earn Hoffenheim all three points and keep them well in the battle for a place in Europe next season.
Freiburg fought back from two goals down to snatch a point at 10-man Stuttgart in a dramatic Baden-Wurttemberg derby.
Daniel Ginczek and Martin Harnik put Stuttgart in command in a dominant first half from the hosts, but it was a different story in the second half.
Nils Petersen scored either side of a red card for Adem Hlousek as Freiburg maintained their three-point advantage over their local rivals at the foot of the table with a 2-2 draw.
Hamburg picked up their first win since early February, and their first goals in seven games, to move off the foot of the Bundesliga by beating Augsburg 3-2.
Ivica Olic ended their club-record goal drought to put them in front before Pierre-Michel Lasogga added a second goal.
Raul Bobadilla and Tobias Werner brought Augsburg back into the game, but Lasogga had the final say with a spectacular winner, lifting Bruno Labbadia’s men off the bottom and denting Augsburg’s hopes of playing in Europe next season.
In the other game, Cologne left it late to grab a point at home to Bayer Leverkusen and dent their local rivals’ Champions League direct qualification hopes in a 1-1 Rhineland derby draw.
Bard Finne cancelled out Julian Brandt’s effort to earn the Goats a deserved draw which takes them a point closer to survival.