Hertha Berlin moved top of the table, while Bochum boosted their survival hopes.
Hoffenheim missed the chance to close the gap on the leaders and Schalke got the better of Eintracht Frankfurt.
Hertha Berlin climbed to the summit for 24 hours at least with a 2-1 win over basement boys Borussia Monchengladbach.
Andriy Voronin gave Hertha the lead on 28 minutes and Pal Dardai doubled the lead a minute before the break.
Michael Bradley reduced the arrears from the penalty spot on 69 minutes, but Hertha held on for the win.
Hoffenheim failed to claim top spot after being held to a goalless draw at Borussia Dortmund.
Both sides had to play the last 13 minutes with ten men after Sebastian Kehl and Tobias Weis were sent off.
Bochum climbed out of the bottom three with a 3-2 win over fellow strugglers Energie Cottbus to send Cottbus into the drop zone.
The visitors got off to a flying start with Ivica Illiev firing them in front within the opening two minutes, but Joel Epalle drew Bochum level ten minutes later.
Emil Jula restored Cottbus' lead five minutes after the break only for Christian Fuchs to hit back for Bochum on 54 minutes.
Bochum grabbed the winner 11 minutes from time when Marc Pfertzel converted from the penalty spot.
Hannover climbed further clear of trouble at the wrong end of the table with a priceless 1-0 victory over Bayer Leverkusen.
Arnold Bruggink scored the only goal of the game on 33 minutes to give Hannover the points.
Schalke moved into seventh spot with a 2-1 win at Eintracht Frankfurt.
Brazilian defender Rafinha opened the scoring on 39 minutes, but Michael Fink equalised for Eintracht nine minutes from time.
Parity proved short-lived as Heiko Westermann notched the winner for Schalke two minutes later.