Wolfsburg picked up a crucial 2-0 victory at home to Stuttgart to boost their bid to move back up the Bundesliga table.
Simon Kjaer opened the scoring in the sixth minute and Edin Dzeko ensured Wolfsburg ended a three-game winless streak with 14 minutes to play.
Theofanis Gekas continued his fine goalscoring form with a crucial brace as Eintracht Frankfurt recorded an impressive 3-1 away win at St Pauli.
The former Greece international opened his account from the penalty spot shortly before the break to cancel out Carlos Zambrano's fifth-minute opener for the hosts.
Gerald Asamoah's dismissal early in the second half left St Pauli on the back foot, and Gekas duly punished them by tucking home his ninth goal of the campaign after 70 minutes. Caio wrapped up the scoring in injury time.
Milivoje Novakovic had been banished to the bench by former Cologne coach Zvonimir Soldo, but scored a hat-trick in his first Bundesliga game under interim coach Frank Schaefer as Cologne beat Hamburg 3-2.
After Novakovic gave Cologne the lead in the 11th minute, Mladen Petric (15) and Heung Min Son (24) replied to give Hamburg a 2-1 lead. But Novakovic equalised after 29 minutes and then gave Cologne the win in the 84th minute.
Ilkay Gundogan scored twice as Nurnberg continued their strong season with a 3-2 victory at Werder Bremen.
Hugo Almeida gave Bremen the lead after five minutes but Gundogan equalised on the stroke of half-time. Mehmet Ekici made it 2-1 for Nurnberg after 47 minutes and the visitors went 3-1 up after 73 minutes with Gundogan's second goal.
Claudio Pizarro grabbed a consolation goal for Bremen two minutes into stoppage time.
Sidney Sam's second half goal pushed Bayer Leverkusen into third place in the Bundesliga with a 1-0 away victory over Schalke, whose nightmare season continues.
Sam scored the only goal of the game in the 65th minute, beating Ivan Rakitic and tslotting past Schalke keeper Manuel Neuer after a superb long through ball by Lars Bender. Schalke hit the goal framework three times - twice through Klaas-Jan Huntelaar.
Kaiserslautern snapped a five-game losing streak in convincing fashion with a 3-0 home win over Borussia Monchengladbach.
The home side scored three times in the last 19 minutes with Christian Tiffert (71) opening the scoring and Adam Nemec (83) making it 2-0. Srdjan Lakic finished off the visitors in the 88th minute.