Bayern Munich moved back to the top of the Bundesliga table with a 4-1 win over Werder Bremen.
Franck Ribery capitalised on a quick Bayern counter-attack to score from outside the area in the 22nd minute before Markus Rosenberg levelled for Bremen in the 52nd minute.
But just 15 minutes later Andreas Wolf fouled Thomas Muller in the box and Arjen Robben converted from the spot to put the hosts back in front.
Ribery grabbed his second in the 77th minute and when Aaron Hunt was sent off four minutes later any hope of a Werder fight back was over.
Robben netted his second and Bayern's fourth with another penalty in the 83rd minute.
Borussia Monchengladbach and Borussia Dortmund shared the spoils after a 1-1 draw, meaning both sides were leap-frogged by Bayern Munich in the standings.
Robert Lewandowski headed home in the 40th minute to put the visitors ahead at Stadion im Borussia before Mike Hanke rescued a draw for the hosts in the 72 minute.
Kaiserslautern picked up a valuable point as they try to beat the drop after a 1-1 draw with Hertha Berlin.
The hosts went ahead after just five minutes when Roman Hubnik stuck the ball past his own goalkeeper.
The lead lasted just nine minutes, however, before Raffael levelled for Hertha Berlin.
Freiburg drew their third game in a row after their clash with Hannover finished 1-1.
The visitors went ahead just before half-time when Felix Bastians scored an own goal. Papiss Demba Cisse then headed Freiburg level in the 67th minute.
Wolfsburg threw away a two goal lead against Mainz to draw 2-2 at the Volkswagen Arena.
Mario Mandzukic opened the scoring after just 10 minutes and an own goal by Jan Kirchhoff put the hosts 2-0 in front at half time.
However, when Diego Benaglio fouled Andreas Ivanschitz and conceded a penalty in the 69th minute the visitors had a lifeline.
Ivanschitz dispatched the kick to halve the deficit and then substitute Eric Maxim Choupo-Moting equalised in the 81st minute.
Wolfsburg were reduced to 10 men in the 85th minute when Makoto Hasebe was sent off for a second bookable offence.
Stuttgart and Cologne continued the trend of draws this weekend by sharing four goals at the Mercedes-Benz Arena.
Lukas Podolski and Christian Gentner grabbed two goals apiece in a 2-2 draw which was the fifth game to end all square.
Podolski struck first with Gentner's brace giving the home side hope of moving to within a point of the top six, before Podolski struck again in the 88th minute.