Stuttgart have moved back on top of the Bundesliga after coming from behind to beat Hannover.
Jan Rosenthal's early goal was cancalled out after half-time by Thomas Hitzlsperger who struck on 49 minutes.
Cacau's goal shortly after put the visitors ahead and they survived the late dismissal of Hitzelsperger to claim all three points.
Alemania Aachen secured a late 1-1 draw with Nurnberg despite having just 10 men.
Tomas Galasek fired the visitors ahead after 29 minutes, a goal that looked like winning the contest for long periods.
Alemannia's hopes of getting back into the game were hindered when Nico Herzig was dismissed, but there was a late sting in the tail.
The home side managed to salvage a point when Reiner Plasshenrich levelled matters with virually the last kick of the game.