Hamburg beat Bielefeld to go third
Bielefeld keeper Dennis Eilhoff completely misjudged Piotr Trochowski's free kick and palmed the ball into his own goal for the 32nd minute opener while Peruvian Paolo Guerrero bagged the second with a well-struck left-foot effort in the 60th.
Bielefeld squandered a chance to level in the 55th when Artur Wichniarek had a penalty saved.
Hertha Berlin beat champions Bayern Munich 2-1 on Saturday to return to the top of the table for the first time in more than two years.
Hertha have 40 points, one clear of Hoffenheim who are ahead of Hamburg on goal difference and who lost 4-1 at home to Bayer Leverkusen on Friday. Champions Bayern Munich are fourth on 38 points.
Bielefeld were left only a point above the relegation zone in 14th place.
"We were dominant throughout the game but were lucky with our first goal and the saved penalty," said Hamburg coach Martin Jol. "I am happy to be in touch within striking distance of the top of the table and not having squandered any more points."
Hamburg, without banned top striker Mladen Petric and injured key defender Bastian Reinhardt, had striker Ivica Olic back in the squad after his suspension.
With the league's best home record this season -- eight wins and one draw before Sunday -- Hamburg looked for a quick goal from the start but Bielefeld had the best early chance when Jonas Kamper fired just over the crossbar in the 25th minute.
Bielefeld wasted a golden chance to make up for Eilhoff's blunder after the break when Hamburg keeper Frank Rost saved Wichniarek's weak penalty.
The hosts then grabbed their second of the evening when the unmarked Guerrero curled a beautiful left-footed effort into the top left corner for his second goal in as many weeks.
"If you want to have any chance against such top teams everything must work and today it didn't work for us," Bielefeld coach Michael Frontzeck told reporters. "We made far too many mistakes and did not use our chances to equalise."
Relegation-threatened Energie Cottbus had to settle for a 1-1 draw against Borussia Dortmund despite taking the lead through Cagdas Atan in the 31st.
Swiss international Alexander Frei quickly levelled for the hosts with a well-struck penalty five minutes later.