Didier Konan scored twice for the hosts as they claimed their third league win of the season to go three points behind second-placed Eintracht Frankfurt.
Lars Stindl put Hannover ahead in the 21st minute and Szabolcs Huszti made it two eight minutes later.
Konan's double came in the 52nd and 63rd minutes before Timothy Chandler grabbed a consolation for the visitors in the 73rd minute.
At the other end of the table Hoffenheim moved out of the bottom three with a 3-0 win at second-bottom Stuttgart.
Takashi Usami opened the scoring after five minutes and second-half efforts from Joselu and Fabian Johnson completed a comfortable win.
Rafael van der Vaart scored and then missed a penalty for Hamburg as Borussia Monchengladbach snatched a 2-2 draw.
The former Tottenham midfielder put his side 1-0 up in the 23rd minute only for Martin Stranzl to level six minutes before the break.
Artjoms Rudnevs restored Hamburg's lead on the stroke of half-time, but the visitors missed the chance to go further clear 10 minutes into the second half when Van der Vaart failed from the spot after Stranzl was sent off.
And that miss proved costly as Gladbach grabbed a point in the final minute thanks to Alvaro Dominguez's equaliser.
Bayer Leverkusen cruised to a 3-1 win at bottom side Augsburg.
The visitors were three up at half-time with goals from Stefan Kiessling, Phillipp Wollscheid and Andre Schurrle.
Tobias Werner pulled one back early in the second half, but the hosts could not mount a fightback.
Elsewhere, Werder Bremen came from behind to win 2-1 at Freiburg.
Goals early in the second half from Joseph Akpala and Aaron Hunt cancelled out Jonathan Schmid's opener.
Wednesday's Bundesliga Results