It took the visitors just three minutes to break the deadlock as Alexandru Maxim applied the final touch to a flowing Stuttgart move, playing a one-two with Vedad Ibisevic before slotting past Rene Adler.
Stuttgart were ahead again before the break as Christian Genter got the slightest of flicks on Maxim's swinging free kick to divert the ball into the far corner.
The second period began quietly, but soon sparked into life with three goals in the space of 12 minutes, the first of which, a tap-in from substitute Maximilian Beister, brought the hosts level once again.
Hamburg twice came close to moving in front in the contest for the first time, and it was one of their players who found the net next - an own goal from Arsenal loanee Johan Djourou, who bundled in a cross aimed for Ibisevic at the near post.
This time, though, Stuttgart's lead lasted for only two minutes as captain Rafael van der Vaart scored Hamburg's third equaliser by neatly finishing from Beister's pass around the corner.
It was the visitors who appeared most likely to go ahead once more before Antonio Rudiger was dismissed four minutes from time, and from then on they were forced to hold on for the point, which on several occasions, had looked like being three.