Berlin: Bastian Schweinsteiger scored a second-half equaliser to give Bundesliga leaders Bayern Munich a 1-1 draw at Cologne and extend their unbeaten run to 18 matches in all competitions.
Lukas Podolski scored against his old club to give Cologne the lead before "Schweini" came to the rescue in the 58th minute, leaving Bayern with 53 points from 25 games.
Schalke 04, who started the weekend in third place, moved within two points of Bayern with an impressive 4-1 win away to Eintracht Frankfurt.
Schalke went second, one point ahead of Bayer Leverkusen who are away to struggling Nuremberg on Sunday and could go back to the top if they win by enough goals.
Werder Bremen came from two goals behind, scoring twice in the final 15 minutes to force a 2-2 draw against VfB Stuttgart while Edin Dzeko scored twice to help champions VfL Wolfsburg beat VfL Bochum 4-1 with all their goals coming in the final half-hour.
Hanover 96 won 2-1 at fellow strugglers Freiburg to move out of the relegation playoff spot, where they were replaced by their opponents.
Having sounded an early warning by smacking a 25-metre shot against the crossbar from 25 metres, Podolski gave Cologne the lead after 31 minutes with a vicious free kick which Joerg Butt could only help into the net.
Schweinsteiger equalised following a Thomas Mueller run into the area and shortly afterwards headed against the crossbar.
Bayern were also denied by the woodwork when Franck Ribery hit the post.
Joel Matip, Benedikt Hoewedes, Ivan Rakitic and Kevin Kuranyi shared the goals for Schalke while Alexander Meier replied for Frankfurt.
Stuttgart took a 2-0 halftime lead at Werder with goals from Pavel Pogrebnyak and Sami Khedira.
Hugo Almeida and Torsten Frings, from a penalty, replied for Bremen in the last 15 minutes.