Bayern Munich survived a scare from Borussia Monchengladbach on Saturday, coming from behind to snatch a 2-1 victory.
Thomas Tuchel's side came out slow and fell behind to Ko Itakura's header, but a tactical switch after the break saw Bayern grow back into the game and Leroy Sane poked his side level early in the second half.
It seemed as though a draw was on the cards but substitute Mathys Tel headed home with just three minutes to go to secure all three points for Bayern.
How the game unfolded
Bayern were comfortably on top in the opening stages, boasting nearly 80% possession inside the first 20 minutes as they sought a way through a stubborn Gladbach back line.
Marin Friedrich headed on to the bar midway through the half on a rare foray forwards for Gladbach but centre-back partner Itakura went one better as he looped his header over Sven Ulreich and into the back of the net half an hour in.
The crossbar frustrated Sane ten minutes later but Bayern failed to do enough to get themselves level at the break. Striker Harry Kane had the fewest touches of any outfield player on his team and just one more than goalkeeper Sven Ulreich.
Itakura was needed to head off the Gladbach line early in the second half before Thomas Muller sent a volley fizzing wide of the post, but Bayern dragged themselves level 13 minutes after the interval as Sane managed to squeeze the ball beyond Moritz Nicolas.
Substitute Serge Gnabry nearly headed Bayern ahead within seconds of coming on but met resistance from the outstanding Nicolas, who somehow pushed his effort away.
But even Nicolas could not get to Tel's late header, with the young Frenchman proving to be the hero on a frustrating outing for Bayern.
Bayern Munich player ratings (4-2-3-1)
GK: Sven Ulreich - 5/10 - Rooted to the spot for Itakura's opener. Not the most inspiring performance.
RB: Noussair Mazraoui - 5/10 - Didn't offer enough going forward and was perhaps a little fortunate to stay on the pitch, avoiding a yellow card for a sarcastic round of applause for the referee. No surprise to see him hooked at the break.
CB: Dayot Upamecano - 5/10 - Wasn't tested too often and yet still looked uncomfortable when he was involved. Questionable decision-making.
CB: Kim Min-jae - 6/10 - A mixed performance. Made some excellent tackles but a few ill-disciplined moments. Composure wasn't always there.
LB: Alphonso Davies - 6/10 - Got into some nice positions but his dribbling wasn't as effective as fans are used to.
DM: Joshua Kimmich - 6/10 - Too safe in possession in the first half but flexed his quality with an excellent assist for Sane.
DM: Leon Goretzka - 5/10 - Couldn't inspire anything either. Not hard to see why Bayern were in the market for a new midfielder.
RM: Leroy Sane - 7/10 - Was the only Bayern player who was ever going to score. A welcome danger in an otherwise underwhelming showing from Tuchel's side.
AM: Thomas Muller - 5/10 - It's Muller's responsibility to link things together and he came up short here. Couldn't find the space at all.
LM: Kingsley Coman - 5/10 - Not his most impactful peformance. Guilty of losing possession more than once.
ST: Harry Kane - 5/10 - Kane just wasn't involved at all. Gladbach set out to keep him quiet and they got the job done. Can't fault his work rate, however. Tracked an opponent right back to his corner flag with just seconds to go.
Substitutes
SUB: Konrad Laimer (46' for Mazraoui) - 7/10
SUB: Serge Gnabry (69' for Coman) - 7/10
SUB: Eric Maxim Choupo-Moting (69' for Muller) - 5/10
SUB: Mathys Tel (80' for Goretzka) - 7/10
SUB: Matthijs de Ligt (90' for Kane) - N/A
Subs not used: Daniel Peretz (GK), Bouna Sarr, Frans Kratzig, Aleksandar Pavlovic
Manager
Thomas Tuchel - 6/10 - After an underwhelming first half, Tuchel's introduction of Laimer was key to the resurgence, but questions should be asked about why Bayern were in that losing position in the first place.