Match ends, Hannover 96 0, FC Bayern München 1.
Bayern Munich will go into 2016 eight points clear at the top of the Bundesliga after beating Hannover in the final game before the winter break.
Hannover's Leon Andreasen and Bayern striker Robert Lewandowski hit the woodwork before Thomas Muller scored a penalty after Christian Schulz handled.
Home keeper Ron-Robert Zieler did well to deny dominant Bayern more goals.
Bayern manager Pep Guardiola is expected to announce he is leaving the club in the summer in the coming days.
Borussia Dortmund's 2-1 defeat by Cologne enabled Bayern to extend their lead at the top.
Bayern, who have eight players out injured, could only name four substitutes - but their starting line-up was still good enough to beat most sides in the world.
Both goalkeepers made fantastic saves before Muller's opener. Bayern's Manuel Neuer, making his 300th Bundesliga appearance, touched Andreasen's header onto the crossbar.
And Lewandowski then hit the post with a curling effort from the edge of the area with former Manchester United trainee Zieler recovering brilliantly to deny Muller's rebound with his feet when it looked as though the in-form forward had an empty net.
Bayern midfielder Arturo Vidal limped off late on, but he has until their next game - at Hamburg on 22 January - to recover.
Muller continues great season
The Germany international had been denied twice by Zieler - once when he controlled Arturo Vidal's pass with his chest and shot at the goalkeeper, and the other from the Lewandowski rebound.
But he did get his goal late in the first half from the penalty spot, sending Zieler the wrong way. That was his 14th league goal of the season, a personal best for a campaign - with half the season left to play.
Despite scoring 14 in 17 games, Muller is only the third top Bundesliga scorer - behind Dortmund's Pierre-Emerick Aubameyang and his own team-mate Lewandowski.
What now for Guardiola and Bayern?
Bayern boss Guardiola, whose contract expires this summer, said after the game he will reveal his future on Sunday.
It is expected he will announce he will leave at the end of the season, with Premier League sides Manchester City and Chelsea reported to want the former Barcelona boss.
And a report from the Guardian claims Carlo Ancelotti has already agreed to take over the German champions, who have won the title in each of Guardiola's two seasons.
Elsewhere in the Bundesliga...
Bayern extended their lead at the top as second-placed Borussia Dortmund lost 2-1 to Cologne.
Sokratis Papastathopoulos' opener means Dortmund have scored as many Bundesliga goals - 47 - as they did in the whole of last season under Jurgen Klopp. But Simon Zoller and former Blackburn loanee Anthony Modeste scored to turn it around.
Former Manchester United striker Javier Hernandez scored his 10th league goal in his last eight games as Bayer Leverkusen beat Ingolstadt 1-0.
- 4H Sakai
- 25Guedes Filho
- 26KaramanSubstituted forKlausat 84'minutes
- 2AndreasenSubstituted forSaint-Maximinat 69'minutes
- 39ErdincSubstituted forBenschopat 58'minutes
- 20Trevizan Martins
- 8Martínez Aguinaga
- 28BadstuberSubstituted forKimmichat 73'minutes
- 13Ferreira de Souza
- 6Thiago Alcántara
- 23VidalSubstituted forRodeat 88'minutes
- Manuel Gräfe
- Shots on Target
Second Half ends, Hannover 96 0, FC Bayern München 1.
Offside, Hannover 96. Salif Sané tries a through ball, but Edgar Prib is caught offside.
Corner, Hannover 96. Conceded by Jérôme Boateng.
Kingsley Coman (FC Bayern München) wins a free kick on the left wing.
Foul by Salif Sané (Hannover 96).
Delay over. They are ready to continue.
Substitution, FC Bayern München. Sebastian Rode replaces Arturo Vidal because of an injury.
Delay in match Arturo Vidal (FC Bayern München) because of an injury.
Hand ball by Rafinha (FC Bayern München).
Substitution, Hannover 96. Felix Klaus replaces Kenan Karaman.
Attempt missed. Kingsley Coman (FC Bayern München) right footed shot from the left side of the box is close, but misses to the left. Assisted by Thiago Alcántara.
Offside, Hannover 96. Edgar Prib tries a through ball, but Charlison Benschop is caught offside.
Attempt saved. Thomas Müller (FC Bayern München) right footed shot from outside the box is saved in the top right corner. Assisted by Xabi Alonso.
Foul by Arturo Vidal (FC Bayern München).
Salif Sané (Hannover 96) wins a free kick in the attacking half.
Foul by Xabi Alonso (FC Bayern München).
Edgar Prib (Hannover 96) wins a free kick in the defensive half.
Attempt blocked. Salif Sané (Hannover 96) right footed shot from outside the box is blocked.
Substitution, FC Bayern München. Joshua Kimmich replaces Holger Badstuber.