Werder Bremen breathed life into the Bundesliga title race with a 3-0 win over Bayern Munich.
Bayern looked away and gone a month ago, but defeat to Hamburg opened up the door and Werder pushed through it with victory on Saturday.
Bastian Schweinsteiger put through his own net on 33 minutes and Daniel Jensen and Tim Borowski sealed the win with goals on 79 and 80 minutes.
Stuttgart are looking to claim a European spot and Jon Dahl Tomasson's effort on 80 minutes handed them a 1-0 win over Nurnberg.
Cologne climbed off the foot of the table with a 3-0 win over fellow strugglers Wolfsburg. All the goals came in the last 13 minutes, as Matthias Scherz, Patrick Helmes and a Hannes Serpei own goal boosted their hopes of avoiding the drop.
Kaiserslautern continue to struggle and Marko Pantelic and Gilberto scored to give Hertha Berlin a 2-0 win.
Heiko Westerman netted the only goal of the game as Arminia Bielefeld got the better of Eintracht Frankfurt.
Bayer Leverkusen boosted their Uefa Cup hopes with a 2-1 win at Borussia Dortmund. Dimitar Berbatov and Paul Freier were the scorers for visitors, with their efforts cancelling out a strike from Markus Brzenska.
The clash between Mainz and Hannover ended goalless.
Click below for a match summary
Arminia Bielefeld v Eintracht Frankfurt
Borussia Dortmund v Bayer Leverkusen
Cologne v Wolfsburg
Kaiserslautern v Hertha Berlin
Mainz v Hannover 96
Stuttgart v Nurnberg
Werder Bremen v Bayern Munich