Bayer Leverkusen downed Schalke 2-1 to stay top of the Bundesliga on Saturday, while Bayern Munich lost ground after conceding two late goals in a 2-2 draw at Borussia Moenchengladbach.
Patrick Helmes continued his run of form by hitting one of the goals which beat Schalke
Hoffenheim meanwhile stayed second, level on 28 points with Leverkusen but with a slightly inferior goal difference after edging Wolfsburg 3-2.
Bayern were left three points behind in third place after they were hit by two late goals in two minutes at lowly Moenchengladbach.
Luca Toni and Franck Ribery from the penalty spot had given the defending champions the lead but headers from Canadian striker Rob Friend and US midfielder Michael Bradley in the 79th and 81st minutes prevented Juergen Klinsmann's side from posting a sixth straight win.
Hertha Berlin came from behind to beat SV Hamburg to move fourth on 24 points - four behind Leverkusen and Hoffenheim - leaving Hamburg a point behind in fifth.
Borussia Dortmund scored three goals in the first half hour as they defeated Eintracht Frankfurt 4-0. Elsewhere, bottom club Energie Cottbus defeated Karlsruhe 1-0, while VfB Stuttgart and Arminia Bielefeld finished goalless.
Leverkusen got the better of Schalke in the day's top match thanks to goals in the 30th and 41st minutes from Stefan Kiessling and Patrick Helmes.
Midfielder Renato Augusto tied Schalke defender Levan Kobiashvili in knots on the left side before crossing for Kiessling to convert, and Helmes pounced with a sharp left-foot shot to put Leverkusen in command.
However the home side had to survive the last 23 minutes with 10 men after defender Gonzalo Castro was sent off following a second booking.
Schalke striker Kevin Kuranyi gave the visitors hope with a headed goal in the 85th minute to leave Leverkusen hanging on desperately for the points.
The defeat leaves Schalke, who were beaten 2-1 at home last week by Bayern Munich, in eighth, now eight points off the top.
Bayern throw away two-goal lead
Moenchengladbach came back from the dead to draw
In Moenchengladbach, Bayern appeared to be on their way to sixth successive league win thanks after a close-range strike from Toni in the 21st minute was followed by a second-half penalty from Ribery.
Philipp Lahm was the creator for Toni's opener after good work down the left, and shortly afterwards the left back had a strong claim for a penalty turned down.
Ribery then converted from the spot in the 65th minute when there was little doubt about a foul in the area on the France midfielder by Steve Gohouri.
However Moenchengladbach were lifted by a Friend header after Bayern were caught napping following a short corner, and Bradley again found the net with a header from a Roberto Colautti cross.
Hoffenheim twice took the lead in the first half against Wolfsburg through Vedad Ibisevic - scoring his 14th goal of the season - and Carlos Eduardo with a direct free-kick.
Felix Magath's side responded quickly each time through Grafite, with a clever turn and toe-poke, and Edin Dzeko, but Hoffenheim - playing at their temporary home in Mannheim - grabbed all the points when Chinedu Obasi struck a 69th-minute winner.
Hamburg slip again as Berlin move into fourth
A marvelous overhead goal by Croatia striker Mladen Petric gave SV Hamburg a 12th-minute lead against Hertha Berlin.
Hertha roll on into fourth after beating HSV in Berlin
But Martin Jol's side were caught cold after the break when Cicero headed Hertha level in the 46th minute and Valeri Domovchiyski swept in a second two minutes later to chalk up a fourth straight home win for Hertha.
Dortmund defender Neven Subotik twice found the net with headers - from a corner and free-kick - either side of a Tamas Hajnal goal on the way to a comfortable victory over Frankfurt.
Felipe Santana headed a fourth from a free-kick in the 69th as Juergen Klopp's side picked up only a second home win this season after five draws.
On Friday, Hanover and Bochum drew 1-1. The weekend's program will be completed Sunday when Werder Bremen take on Cologne.