Werder Bremen missed the chance to close the gap with Bundesliga leaders Bayer Leverkusen when they drew 0-0 against Cologne on Sunday.
Bremen, who now have a 23-match unbeaten streak in all competitions, lacked the creativity of midfielder Mesut Ozil, who was out with influenza. They carved out only a few chances but hosts Cologne themselves missed clear scoring opportunities.
"We played well until the edge of the box but we just could not finish our attacks," said Bremen coach Thomas Schaaf. Leverkusen are top on 31 points after drawing 0-0 against Hanover 96 on Saturday, with Bremen in second place on 28.
Schalke, leapfrogged Bayern Munich to join Bremen on 28 points after a 2-0 win over bottom-placed Hertha Berlin which came thanks to Kevin Kuranyi's header in the 59th minute and a stoppage-time penalty by Rafinha.
Kuranyi, battling for a recall to the Germany squad after walking out on them last year, has now scored seven goals this season and is second on the scorers' table.
Cologne gave Bremen an early scare in the 14th minute when Lukas Podolski raced down the left wing and crossed beautifully for Milovoje Novakovic who fired wide from three metres.
Bremen responded with two shots from Germany international Marko Marin but keeper Thomas Kessler, who was replacing injured Faryd Mondragon, saved well on both occasions.
Bremen had constant trouble feeding striker Hugo Almeida with Marin failing to fill the gap left by Ozil's absence.
Kessler blocked an Almeida free kick with the Portuguese striker threading a low shot through the wall a minute before the break.
Cologne continued to be dangerous up front and Novakovic should have done better in the 54th when he picked up a Maniche through ball and only had Bremen keeper Sebastian Mielitz to beat.
The 20-year-old keeper, making his Bundesliga debut, kept his cool to block the shot.