Bayer Leverkusen scored three goals in four minutes late in the first half as they surged back to the top of the table with a 3-1 victory at home over Freiburg.
Stefan Kiessling opened the scoring in the 36th minute and was followed just a minute later by Eren Derdiyok before Sami Hyypia made it 3-0 after 39 minutes. Felix Bastians cut the deficit to 3-1 in the 66th minute.
Leverkusen are the league's only undefeated team and registered their fourth straight victory to improve to 44 points, giving them a two-point lead over second-placed Bayern Munich.
Stuttgart scored three goals in the final 15 minutes to sink Borussia Dortmund 4-1 and continue their climb up the table.
Stuttgart went ahead after 15 minutes when Dortmund defender Felipe Santana conceded an own goal before Lucas Barrios equalised in the 55th minute.
But Zdravko Kuzmanovic made it 2-1 for the hosts with his free-kick in the 77th minute. Ciprian Marica added an 86th-minute third and Christian Trasch netted two minutes later as Stuttgart extended their winning streak to four games.
Jurgen Klopp's Dortmund had their six-game winning streak broken and suffered their first loss in 13 matches.
