Hannover's Ivorian Didier Ya Konan slotted home from close range in the 57th minute and Senegalese Mame Biram Diouf headed in his fifth league goal this season in the 77th before Gladbach cut the deficit a minute later through Havard Nordtveid.
The win put Europa League quarter-finalists Hanover, who trail Atletico Madrid 2-1 after the away leg, firmly back in contention for a spot in the competition next season.
They are on 41 points in fifth place while Gladbach, after their third defeat in the last five games, are stuck in fourth on 51 with six games left to play.
"We made far too many mistakes," said Gladbach coach Lucien Favre. "We need to rediscover those 15 percent that are currently missing in our game."
In Sunday's other match, Schalke had to settle for a draw at Hoffenheim but moved up to 54 points, nine adrift of leaders Borussia Dortmund and six behind Bayern Munich.
"I am very disappointed because I expected a different performance from my team," Schalke coach Huub Stevens told reporters.
"Our defeat to Bilbao cannot be an excuse because professionals must be in a position to play three games in a week", he said referring to their 4-2 Europa League quarter-final home leg defeat by Athletic in midweek.
Sejad Salihovic had given Hoffenheim an unexpected lead with a well-taken penalty in the 31st minute with Schalke having looked far more aggressive at the start.
The visitors fought back and grabbed a deserved point with a spot-kick of their own as Hoffenheim failed to win at home for yet another week with their last victory on their own ground stretching back to October.
Schalke's controversial penalty came after Chinedu Obasi fell in the box following a challenge from Andreas Beck in the 80th minute, seconds after Klaas-Jan Huntelaar had hit the bar.
The Dutchman quickly made amends, converting the spot-kick for his 23rd goal of the season to join Bayern Munich's Mario Gomez at the top of the goal chart.
The top three teams automatically book a spot in the Champions League group stage for next season.
Dortmund's lead at the top was cut to three points after they drew 4-4 in a thriller at home to VfB Stuttgart on Friday while second-placed Bayern beat Nuremberg 1-0 away on Saturday.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.