Bundesliga: Hannover 1 Bayern Munich 3
Hannover began the game strongly and deservedly took the lead through Hiroshi Kiyotake after 25 minutes, but Bayern's quality ultimately shone through after a tactical tweak from Pep Guardiola saw Robert Lewandowski come on for the struggling Dante just after the half-hour mark.
Xabi Alonso had already drawn the champions level with a superb free-kick by then, and Muller's 61st-minute penalty and excellent header soon after sealed what turned out to be a routine three points.
Second-placed Wolfsburg's 1-0 loss at Augsburg - their first defeat since November - means Guardiola's side tightened their grip on a third straight Bundesliga title.
The visitors unsurprisingly enjoyed a larger share of possession during the early exchanges, though their only notable attempt on goal saw Ron-Robert Zieler comfortably tip David Alaba's free-kick over.
Bayern's monopolisation of the ball forced Hannover to seek opportunities on the break and a glorious chance almost presented itself when Artur Sobiech seized on an error by Dante in the 18th minute, but Holger Badstuber tracked back to bail the Brazilian out.
Guardiola's men escaped unscathed again two minutes later, as Marcelo inexplicably failed to find the target with his close-range header from a corner.
But Hannover eventually made the most of an opening, as Kiyotake held off Dante and found the bottom-left corner after latching on to Jimmy Briand's cleverly disguised pass.
That lead lasted just three minutes, however, as Alonso stepped up and nonchalantly stroked a 25-yard free-kick beyond the helpless Zieler.
Guardiola replaced the faltering Dante with Lewandowski in the 32nd minute and Bayern's change of shape saw Hannover struggle to carve out more counter-attacking opportunities.
The away side's dominance continued into the second half and Lewandowski might have edged Bayern in front but he could not head Rafinha's cross on target.
Bayern did finally take the lead just after the hour, though the goal came in controversial circumstances.
Franck Ribery, a substitute for Mario Gotze, headed the ball across goal and Lewandowski stooped to make contact, only to receive a glancing blow to the face from the boot of Marcelo.
Referee Tobias Welz pointed to the spot, and Muller powered home from 12 yards.
Muller duly doubled his tally for the day and secured Bayern a comfortable win in the 72nd minute, as he rose brilliantly to thump Ribery's cross past Zieler with his head.