Bayern München-forwarden tog emot en passning från Dante på bröstet och placerade snyggt in ledningsmålet. Och bara en liten stund senare träffade Franck Ribery stolpen efter en kontring.
Sedan gjorde Mario Götze 2-0. Han snappade åt sig returen efter en hörna och rullade enkelt in bollen från nära håll. Frågan är dock om han borde blåsts av för offside.
David Silva reducerade med en halvtimme spelad. Och sedan kvitterade Aleksandar Kolarov på straff en kvart in i andra halvlek.
Men sista ordet var inte sagt. James Milner sköt 3-2 och fullbordade vändningen i 63:e minuten. Ett fint invinklat högerskott från kanten av straffområdet.
Bayern München vinner dock ändå gruppen på lika många poängh (15) som City, men med bättre målskillnad. Viktoria Plzen kommer trea tack vare sin seger mot Rasmus Elm och Pontus Wernblooms CSKA Moskva.
Manchester City: Hart; Richards, Demichelis, Lescott, Kolarov; Javi García, Fernandinho; Jesús Navas, Silva, Milner; Džeko.
Bayern München: Neuer, Dante, Thiago, Ribéry, Mandžukić, Boateng, Götze, Lahm, Müller, Alaba, Kroos