The visiting side held the reigning Bundesliga champion at halftime, leaving die Roten fans worrying they might drop points for the second matchday in a row after a 1-1 draw at Freiburg, but the Bavarians notched twice not long after the break to secure the win.
The home side unsurprisingly started the match brightly and Hannover struggled to maintain possession in its opponent's half.
Ribery tested Ron-Robert Zieler within the first five minutes as he fired in a low shot from the edge of the area, before Thomas Muller skipped past the goalkeeper but could only hit the side netting from a narrow angle.
After a nervous opening 10 minutes, Mirko Slomka's side did eventually settle, but nearly orchestrated its own downfall in the 19th minute as Leon Andreasen connected with a Muller pass and almost put the ball over his own goalkeeper from outside the area. Zieler spared him from humiliation as he clawed the ball away from under the crossbar.
The visiting side grew in confidence as the first half went on and Marcelo almost handed the club the lead following Artur Sobiech's front-post flick from a corner, while Ya Konan saw a late effort from outside of the area deflected on to the post as the match remained goalless at the break, despite intense pressure from Bayern.
Hannover's increasing confidence was again in evidence at the beginning of the second half. Bittencourt saw a volley from a narrow angle saved after Jerome Boateng's poor headed clearance, but Bayern ensured that its host's good work would be for nothing as the club took a 51st minute lead.
Robben showed excellent vision to pick out Kroos in the left side of the area and after shaping to play the ball across goal. The German cut it back for Mandzukic, who stroked it low past the helpless Zieler.
Bayern effectively secured the victory 13 minutes later as Ribery fed Robben and although Zieler denied the Netherlands international, he could not keep out the Frenchman's effort on the rebound.
With just over 10 minutes left of the contest, Robben almost added his own name to the score sheet as he controlled Ribery's pass after a marvelous run in from the left, but Sebastien Pocognoli made a vital block in front of Zieler to ensure that the match ended 2-0.Follow GOAL.COM on