Robert Lewandowski scored in his 12th consecutive game to help Bayern Munich to their first Bundesliga win under boss Julian Nagelsmann following a topsy-turvy encounter with Cologne.
Twenty thousand supporters were treated to a spectacular second-half encounter at the Allianz Arena after a drab opening 45 minutes.
Defender Niklas Sule came closest to opening the scoring in the first half with a clever turn and shot that forced a save from Timo Horn.
Rampant Bayern rip through Cologne after milestone Lewandowski hat-trick
- Lukaku strikes as Chelsea maintain perfect start
- Man Utd held at Southampton despite Greenwood goal
- Alli continues Totenham's 100% start as Kane rerutns in Wolves win
Jamal Musiala was one of two substitutes introduced at the interval, and the 18-year-old made an immediate impact, creating the opening goal for Lewandowski.
Minutes later, Bayern were seemingly cruising as Serge Gnabry doubled their advantage, finishing from Thomas Muller's cross.
But two goals in 60 seconds from the visitors turned this game on its head once more. Almost straight from kick-off, Jonas Hector crossed for Anthony Modeste whose bullet header halved the deficit, and the goalscorer then turned provider, crossing for Mark Uth to fire in a dramatic leveller.
However, all their hard work proved futile as Horn opted to punch clear a cross rather than catch, and the Cologne goalkeeper arguably could have kept out Gnabry's shot, which gave Bayern a 71st-minute lead.
The hosts held on and now have four points from their opening two games.
TALKING POINT - Relief for Nagelsmann's Bayern
Nagelsmann will breathe a huge sigh of relief that his side managed to record all three points. For large parts of this memorable encounter, it looked possible that he would become the first manager at Bayern since Louis van Gaal in 2009 not to record a victory in the opening two league games.
After the first opening half, it was clear Nagelsmann had got his team selection and set-up wrong as Bayern offered next to nothing in attack, with Leroy Sane proving particularly wasteful. The former Manchester City forward was hooked at the break and within minutes, his replacement Musiala had registered an assist, the teenager taking full advantage of his opportunity and staking his place for a regular starting spot.
For a brief period, Bayern looked like their old self as they raced into a comfortable lead. But then a ruthless Cologne exposed fragilities in their new-look defence with two goals in as many minutes. Gnabry would spare Bayern's blushes, but Nagelsmann's side looked far from convincing in the last quarter of the game as Cologne controlled possession.
These are certainly early days for Nagelsmann at Bayern but he will have to learn quickly at a club that demands only the best.
MAN OF THE MATCH - Serge Gnabry (Bayern Munich)
A clinical performance from Gnabry, who took both of his chances with aplomb.
Bayern Munich: Neuer 6, Sule 6, Upamecano 5, Nianzou 5, Davies 6, Kimmich 6, Goretzka 6, Sane 4, Muller 7, Gnabry 8, Lewandowski 7.. subs: Choupo-Moting 5, C. Richards N/A, Tolisso 6, Musiala 8.
Cologne: T. Horn 5, Ehizibue 6, Mere 5, Czichos 5, Hector 6, Skhiri 5, Thielmann 5, Ljubicic 5, Uth 7, Kainz 6, Modeste 6.. subs: Andersson 5, Duda 5, Schaub 5, Lemperle 5.
50' - GOAL! Bayern Munich 1-0 Cologne (Robert Lewandowski): For the 12th consecutive league game, Lewandowski scores! Bayern's lightning start to the second-half is reward with the opening goal. It's the substitute Musiala who creates it, storming down the left flank, dancing past his marker before cutting it back to Lewandowski and he does the rest!
59' - GOAL! Bayern Munich 2-0 Cologne (Serge Gnabry): Gnabry scores his first goal of the season to double Bayern's advantage. It's a beautiful ball in behind the defence from Lewandowski to Muller, who slides a delightful pass to the back post and Gnabry is there to slot it home.
60' - GOAL! Bayern Munich 2-1 Cologne (Anthony Modeste): Cologne respond immediately and suddenly it's game on again! It's the perfect cross from Hector and Modeste finishes with a bullet header!
62' - GOAL! Bayern Munich 2-2 Cologne (Mark Uth): I don't believe it! Cologne are level! It's sloppy marking from Upamecano as he loses Uth and the Cologne forward punishes him, finishing Modeste's pinpoint cross with an instinctive shot.
71' - GOAL! Bayern Munich 3-2 Cologne (Serge Gnabry): Question marks over the goalkeeper here, but Bayern won't care as Gnabry grabs his second to give the hosts the lead once more! Horn opts to punch a cross clear rather than catch and Gnabry finds space on the right, smashing the ball into the top corner.
Coman extends Bayern Munich contract until 2027
Gladbach come from behind to stun Bayern
FC Bayern Munich
1. FC Köln