Hamburg picked up their first win of the season and brought an end to Borussia Dortmund's 31-game unbeaten streak with victory at the HSV Arena.
Hamburg took the lead in the second minute through Heung Min Son and they remained in front until the start of the second half when Ivan Perisic brought the defending champions level.
Ivo Ilicevic restored Hamburg's advantage in the 55th minute and Son's second of the game gave them a two-goal cushion, which they were only able to hold for 60 seconds before Perisic brought the Westphalians back into the game.
However, Dortmund could not find an equaliser, despite spending the last 20 minutes inside the Hamburg half, and had to taste defeat for the first time in almost a year.
Rafael van der Vaart paid back some of his transfer fee within minutes of his home debut as he sent in the cross from the left which Son nodded past Roman Weidenfeller at the near post.
Michael Mancienne almost made it two for the hosts, who had yet to pick up a single point all season, but his header was tipped over the crossbar by Weidenfeller.
Dortmund responded to the threat by creating several of their own chances, notably through Robert Lewandowski.
The Poland international twice warmed the palms of Rene Adler but was twice denied by the Hamburg goalkeeper, who kept his side in front.
The second half had barely started when Dortmund levelled through Perisic, whose cross looped over Adler and into the far corner.
Parity did not even last 10 minutes, though, before Ilicevic restored Hamburg's advantage, beating Weidenfeller inside his near post with Van Der Vaart again the provider.
Four minutes later, Son made it three with a curling shot from just outside the penalty area beating Weidenfeller, who did not even make an attempt to reach the ball.
While the Hamburg fans were still celebrating, Dortmund pulled a goal back through Perisic.
Lukasz Piszcek beat the offside trap but his control of the ball did not leave him enough room for a shot, although he still managed to pull the ball back for Perisic, who slotted it into the empty goal.
Mario Gotze's shot was pushed behind by Adler in the 71st minute and the ball was cleared off the line from the resulting corner.
Julian Schieber was denied by Adler and Lewandowski lobbed the ball over the goal as Dortmund's late efforts went unrewarded.