Borussia Dortmund extended their lead at the top of the Bundesliga to four points and collected their sixth straight away victory by winning 4-0 at 10-man Hannover.
Shinji Kawaga gave Dortmund the lead in the 11th minute but it was not until the 72nd minute that Lucas Barrios added the second.
Hannover's Karim Haggui was given his marching orders in the 77th minute and although Dortmund's Nuri Sahin failed to convert the ensuing penalty, they turned it into a rout as Robert Lewandowski added another and Jakub Blasczcykowski wrapped things up as the seconds ticked down.
Stuttgart hit Werder Bremen for six to move out of the bottom three in style at the Mercedes-Benz Arena.
Ciprian Marica put the home team in front after 10 minutes and two goals from Cacau gave Stuttgart a 3-0 lead at the interval after Torsten Frings missed a penalty.
Cacau also missed a penalty before Christian Gentner added a fourth and Georg Niedermeier a fifth.
Arthur Boka then sealed the rout as Stuttgart lifted themselves out of the danger zone and piled the pressure on Bremen coach Thomas Schaaf.
Sidney Sam scored twice as Bayer Leverkusen fought back from an early deficit to defeat Kaiserslautern and jump to third place.
Florian Dick gave the visitors the lead in the 15th minute before Sam equalised seven minutes before the break.
Patrick Helmes gave Leverkusen the lead after 68 minutes and Sam finished off the scoring late on.
Philipp Lahm's late equaliser spared Bayern Munich's blushes as they escaped with a 3-3 draw at Borussia Monchengladbach.
The reigning Bundesliga champions looked like they had overcome the scare of a fourth-minute Patrick Herrmann strike when goals from Mario Gomez and Bastian Schweinsteiger, who also missed a penalty, fired them ahead before the break.
But Marco Reus equalised after 56 minutes before substitute Igor De Camargo sent Monchengladbach, without a home win this season, ahead.
It stayed that way until the 84th minute when Lahm profited on some good fortune, Anatoliy Tymoschuk's pass deflecting kindly into his path, to score.
Mainz missed the chance to return to the top of the table after they were beaten 1-0 at mid-table Freiburg.
Papiss Demba Cisse's 64th-minute penalty decided the game to leave Mainz a point behind leaders Borussia Dortmund who travel to Hannover on Sunday.
Theofanis Gekas scored twice as Eintracht Frankfurt moved up to third with a 3-1 win over Wolfsburg.
Greece striker Gekas opened the scoring in the 26th minute with Pirmin Schwegler adding another after 38 minutes.
Gekas then struck again from the penalty spot in the 55th minute for his 12th goal in 10 games in all competitions, before Ashkan Dejagah grabbed a consolation for Wolfsburg 11 minutes later.
Hamburg drew level with fourth-place Hoffenheim on 18 points with a 2-1 win over their rivals.
Mladen Petric struck the winner after 83 minutes after Heiko Westermann (45) had cancelled out Hoffenheim's fifth-minute opener through Sejad Salihovic
Nurnberg joined the group of team on 18 points as they thrashed lowly Cologne 3-1.
Jens Hegeler's 11th-minute opener was quickly cancelled out by Pedro Geromel but goals from Ilkay Gundogan and Julian Schieber ensured a home win.
Match Results and Reports