Waldemar Anton's first Bundesliga goal and an Artur Sobiech strike saw Daniel Stendel's men pick up only their third win in their last 19 games to reduce the arrears on the relegation play-off position to seven points with four games of the season remaining, ahead of the remainder of the weekend's fixtures.
Gladbach still trail fourth-placed Bayer Leverkusen by three points, but that gap could grow to six when Leverkusen host Eintracht Frankfurt this weekend.
Stendel picked up a draw in his first game in charge of the Reds last weekend and the positive impact he has had since replacing Thomas Schaaf continued into his second game with his side showing much more motivation than under his predecessor.
Although they struggled to create chances of their own, they ensured their opponents were unable to develop their counter-attacking game before forcing Yann Sommer into making the first big save of the evening five minutes before half-time, to deny Noah Joel Sarenzen-Bazee.
Saranzen-Bazee was denied again by the goalkeeper early in the second half before his cross picked out Anton to put the hosts in front, Sommer unable to keep the shot out despite getting his hand to the ball.
The goal meant Gladbach had to come at Hannover and this played into their hands, with the second goal arriving just 10 minutes later.
Kenan Karaman's shot hit the right-hand post and Sobiech was on hand to turn in the rebound from close range.
Gladbach rarely managed to pose a threat as Hannover had no trouble defending their advantage for half-an-hour to end a seven-game losing streak at the Niedersachsenstadion and give them a glimmer of hope that they could still stay up.