Shinji Okazaki opened the scoring at the Mercedes-Benz-Arena in the ninth minute and late goals from Zdravko Kuzmanovic and Serdar Tasci made sure of the points.
The result lifted Stuttgart into the top half of the table, just one point behind their visitors.
Stuttgart coach Bruno Labbadia had called for patience as his side looked to get their season back on track, but the home fans did not have to wait long to see the first goal.
A low cross from the right by Martin Harnik found Okazaki, who lashed into the top-right corner from close range within 10 minutes of kick-off.
Cacau was well placed to double his side's advantage seven minutes later, but saw his weak shot comfortably saved by Ron-Robert Zieler.
Stuttgart goalkeeper Sven Ulreich was called upon to pull off a much more difficult save 10 minutes before the break, tipping the ball over the bar to ensure Konstantin Raush's fine header yielded nothing more than a corner.
The action soon returned to the other end, where Zieler got down well to keep out a right-footed Kuzmanovic blast which had looked destined for the bottom-left corner.
It was one-way traffic after the interval as Stuttgart looked to build on their lead and Hannover offered little attacking threat.
Kuzmanovic fired a free-kick harmlessly over the bar and then Harnik headed wide from Molinaro's cross, but in the final 12 minutes they did manage to put the game to bed.
First Kuzmanovic steered a low left-footed shot into the bottom corner from outside the penalty area and then Tasci converted a cross from Tamas Hajnal to banish any doubt over the result.