Bayern Munich's Mario Gomez hit a hat-trick as the defending Bundesliga champions moved up to third with a 5-1 win over Kaiserslautern as leaders Borussia Dortmund were held.
Bayern went ahead when Dutchman Arjen Robben latched onto a long pass from Germany star Thomas Muller, held off a defender and beat Stuttgart goalkeeper Sven Ulreich with almost the last kick of the first-half.
Munich went 2-0 up straight after the break when Robben beat two defenders down the left wing, squared the ball to Bastian Schweinsteiger who offered his Germany team-mate Gomez the chance to tap into an empty net.
Kaiserslautern pulled a goal back when Bayern defender Anatoliy Tymoshchuk made a hash of dealing with a cross and the loose ball fell into the path of Czech midfielder Jan Moravek in the 62nd minute who fired home.
But Gomez showed his class with two late goals before Mueller added the fifth in added time to complete the rout - to bring his tally to 15 in 17 league matches this season.
Borussia Dortmund's march towards the title was interrupted by Stuttgart, who held them to a 1-1 draw at the Westfalenstadion.
Jurgen Klopp's side looked on course for their 16th win in 19 matches after Mario Gotze scored late in the first half, but Pavel Pogrebnyak levelled in the 84th minute to do a huge favour to the chasing pack at the top.
Hanover are second in the table despite losing 1-0 at home to Schalke. Die Knappen sealed the win when Spanish striker Raul hit his 10th league goal of the season when he netted in the 33rd minute. The win lifts Schalke up to 10th place.
Former England manager Steve McClaren ended a ten-match winless run when his Wolfsburg side earned a 1-0 victory at Mainz. A header from Wolfsburg defender Simon Kjaer in the 82nd minute after a cross from Brazilian Diego secured the three points.
Lukas Podolski scored twice as Cologne inflicted a bruising 3-0 defeat on a Werder Bremen side whose flirtation with the relegation zone could develop into something more serious.
Nurnberg's Julian Schieber salvaged a 1-1 draw against Freiburg after Johannes Flum had given the home side a first-half lead.