Bayern hammer Hamburg to go seven clear
Bastian Schweinsteiger headed in a deft Toni Kroos chip to give Bayern the lead in the 40th minute before early second half goals from Thomas Muller and Kroos made sure the Bavarians bounced back in style from their first league defeat last week.
Bayern's ninth win in 10 league games lifted them to 27 points.
Hoffenheim's Sven Schipplock scored in injury time to condemn second-placed Schalke 04 to a 3-2 defeat that leaves them seven points adrift.
Dortmund also lost ground after drawing 0-0 against VfB Stuttgart and remain fourth on 16 points. Hamburg dropped to eighth on 13.
"It was a good goal and more importantly a crucial one," said Muller of his seventh goal of the season that helped Bayern clinch their first win in Hamburg in six years.
"Finally we won again here because it had been an issue for quite some time."
Bayern, hosting Lille in the Champions League on Wednesday, were eager to shrug off last week's defeat to Bayer Leverkusen and dispel any thoughts of a possible repeat of last season's mid-season implosion.
With Franck Ribery back in the starting line-up but Arjen Robben back on the bench after his German Cup appearance in midweek, Bayern took the lead just before the break.
Kroos looked to have missed his chance when he was sent clear with only Rene Adler to beat but he managed to recover, sending a clever chip over the keeper to the far post for Schweinsteiger to score with a diving header.
Hamburg, with three wins in their last four games, struggled to make an impact in Germany's traditional north-south derby.
It took only three minutes after the restart for Bayern to strike again with Muller's audacious shot from the tightest of angles beating Adler.
Kroos took any wind left out of Hamburg's sails drilling in from close range in the 53rd minute as Bayern set a Bundesliga record for five wins in five straight away games since the start of the season, without conceding a goal.
Hoffenheim twice took the lead with goals from Kevin Volland and a Roberto Firmino spot-kick, either side of a Roman Neustaedter equaliser.
Schalke levelled a second time with an 82nd minute Atsuto Uchida goal but the hosts, who had keeper Tim Wiese to thank for keeping them in the game, grabbed the winner through Schipplock in injury time.
Dortmund were livelier from the start against Stuttgart and should have taken the lead midway through the first half when Mats Hummels' header was palmed onto the bar by Sven Ulreich and his rebound header was cleared off the line by Artur Boka.
Ulreich was also on hand to deny Julian Schieber from nine metres and Robert Lewandowski rattled the crossbar in the 87th minute for the hosts, who are yet to win back-to-back league games this season.
Dortmund also suffered an injury blow when captain Sebastian Kehl was forced off in the 20th minute with a suspected broken nose after getting an elbow in the face, making him a doubt for the trip to Spain.
Hannover 96 bounced back from consecutive defeats to beat Augsburg 2-0 and move up to sixth on 14 points while Nuremberg beat VfL Wolfsburg 1-0 with Timo Gebhart heading in a Timothy Chanlder cross.
Borussia Monchengladbach and Freiburg drew 1-1 to share the spoils in their mid-table clash.