Schalke closed the gap at the top of the Bundesliga as leaders Bayern Munich were held away from home by Cologne.
Stuttgart squandered a two-goal lead at Werder Bremen, Hamburg battled past Hertha Berlin and Wolfsburg came from behind to thrash Bochum.
Lukas Podolski threatened to embarrass his former club as Cologne were denied three points at home to Bayern, who hit back to draw 1-1.
Former Bayern striker Podolski hit the bar after just seven minutes of the game and then fired Cologne ahead just past the half-hour mark.
Bayern levelled in the 58th minute through Bastian Schweinsteiger, who came close to snatching a winner when he headed against the bar on 64 minutes.
Schalke are now just two points adrift of Bayern after a convincing 4-1 win away to Eintracht Frankfurt.
Joel Matip celebrated signing a new contract by heading Schalke in front on 12 minutes and Benedikt Howedes nodded home the second goal just moments later.
Frankfurt got themselves back into the encounter seven minutes into the second half when Alexander Meier turned home Patrick Ochs' cross from close range.
However, Ivan Rakitic restored the two-goal cushion 10 minutes from time after being played in by Kevin Kuranyi, who scored the fourth goal a minute from the end.
Marcell Jensen's goal five minutes before half-time was enough to secure Hamburg a 1-0 home success over bottom-of-the-table Hertha Berlin.
Werder Bremen scored twice inside the final 15 minutes to force a 2-2 draw at home to Stuttgart.
Pavel Pogrebnyak scored for the visitors after quarter of an hour and Sami Khedira's header ensured Stuttgart were in firm control at half-time.
Substitute Hugo Almeida netted for Bremen on 75 minutes and Torsten Frings converted from the penalty spot on 81 minutes after Stefano Celozzi had fouled Marko Marin.
Edin Dzeko scored twice as Wolfsburg overturned a half-time deficit to run out 4-1 winners at home to Bochum.
Paul Freier fired Bochum ahead on 28 minutes before Dzeko levelled from Marcel Schafer's cross on the hour mark.
Substitute Obafemi Martins put Wolfsburg in front on 75 minutes, Dzeko scored a penalty four minutes later and Jonathan Santana netted an injury-time fourth.
Papiss Demba Cisse's own goal gave struggling Hannover a vital 2-1 win away to relegation rivals Freiburg.
Elson put Hannover ahead on 63 minutes and Cisse turned the ball into his own net on 73 minutes, just three minutes after Yacine Abdessadki had drawn Freiburg level.
In the day's late game, Borussia Dortmund enjoyed a comfortable 3-0 win over Borussia Monchengladbach.
Kevin Grosskreutz opened the scoring before Mohamed Zidan, a goalscorer for Egypt against England on Wednesday, struck twice in the second half to round off the victory.