Borussia Monchengladbach twice came from behind before handing Hamburg their first loss of the season and robbing them of a chance to top the table. Piotr Trochowski gave Hamburg the lead in the 13th minute only to see Marco Reus equalise after 39 minutes.
Aaron Hunt scored twice in the final 18 minutes as Werder Bremen came back from a two-goal deficit at Nurnberg to rescue a 2-2 draw. Christian Eigler put Nurnberg ahead in the third minute and Albert Bunjaku made it 2-0 after 33 minutes.
But Hunt struck in the 72nd minute and then two minutes into injury time, allowing Werder to extend their unbeaten streak to 17 games.
Mainz also fought back from a two-goal deficit and snatched a point five minutes from time in a thrilling 3-3 draw at defending champions Wolfsburg. Obafemi Martins scored in the seventh and 20th minutes to give Wolfsburg a 2-0 lead, but Chadli Amri struck in the 35th minute and Andreas Ivanschitz made it 2-2 shortly before the interval.
Jan Rosenthal's first-half goal was enough for Hannover to grab an away victory at Cologne as the guests welcomed back Germany goalkeeper Robert Enke. And, elsewhere, Stuttgart and Bayern Munich battled out a goalless draw.