Match ends, Napoli 2, Manchester City 4.
Sergio Aguero became Manchester City's all-time top-scorer as they beat Napoli to reach the Champions League knockout stages in a game that lived up to the hype.
City came from behind to win in a meeting between the free-scoring, unbeaten top sides in the Premier League and Serie A.
The hosts were on top for the first 30 minutes and deservedly led when Lorenzo Insigne played an excellent one-two with Dries Mertens and steered the ball past Ederson.
City started to see more of the ball after Napoli's blistering start and were level when Nicolas Otamendi headed in a cross from Ilkay Gundogan - a surprising selection in the starting 11.
- Why record-breaking Aguero is so special - Shearer analysis
- Guardiola wowed by Man City style
- Spurs see off Real Madrid to reach last 16
- Liverpool too good for Maribor
They led when John Stones headed in off the underside of the crossbar for his third Champions League goal this season - matching Lionel Messi's haul.
Napoli - now in danger of dropping out of the Champions League - stepped up the intensity again and Insigne hit the crossbar from 20 yards.
As the game ebbed and flowed, they equalised when Leroy Sane fouled Raul Albiol and Jorginho sent Ederson the wrong way from the penalty.
But there were more big moments to come - the ball broke to Aguero, who guided the ball home from the edge of the box. His 178th City goal took him above Eric Brook's long-standing club record.
The final stages were comfortable for City and the excellent Raheem Sterling crashed home a fourth goal from Kevin de Bruyne's pass in injury time.
Maurizio Sarri's hosts are now six points behind second-placed Shakhtar Donetsk, who beat Feyenoord 3-1, with two games left in Group F.
The great entertainers don't disappoint
City and Napoli have arguably been Europe's two most entertaining sides this season, with a combined 67 goals from 21 league games - dropping only two points each.
Fans were expecting a fantastic game of pressing, passing, pace and precise finishing - and and they were not disappointed.
There were so many majestic players on both sides - Sterling and Sane offering devastating speed for City, Insigne and Mertens linking up in spectacular effect for Napoli.
The Italians had several chances - through Marek Hamsik and Mertens - before their wonderful opener. Insigne found Mertens, who played a first-time edge-of-boot pass to split City's defence and an unmarked Insigne scored from close range.
The hosts lost influential left-back Faouzi Ghoulam to injury after 30 minutes and City started to come back into it.
For all of City's mesmerising attacking options, the equaliser and the goal to put them ahead were both headers by centre-backs.
Pep Guardiola's side levelled when De Bruyne rolled a short corner to Gundogan, whose cross was headed in by Otamendi - the Argentine's second goal in three games.
He and Stones have been brilliant at the back for City this season and the England international gave them the lead after the break when he headed home Sane's cross.
Napoli were not done and were almost level again when Insigne left Danilo on the floor with some good footwork before hitting the bar. They deserved Jorginho's equaliser from the spot.
They almost led when Jose Callejon was picked out by Mertens and was only denied by an excellent Ederson save.
Then came Aguero's big moment. The Argentine had been relatively quiet but like all great strikers pounced when his chance came.
Sane broke at pace, running at Napoli's defence, and a lucky deflection took the ball through to Aguero, who made no mistake from 18 yards.
Napoli were drained now, and City dominated the final stages with Sterling slamming home after De Bruyne ran at the hosts' tiring defence and found the England winger.
The real shame - from a neutral perspective - is that Napoli's Champions League run is likely to end before Christmas. Watch out Europa League sides.
Are City potential European champions?
Simple answer, yes. It has taken Guardiola a year to get things right at City but now they seem unstoppable. Their last defeat came in April when they lost to Arsenal in the FA Cup semi-final in extra time.
Their squad looks so strong, too. Guardiola - whose starting line-ups are impossible to predict - was able to make four changes from the weekend's win over West Brom.
Danilo started at right-back instead of £50m Kyle Walker - perhaps to deal with the triple threat from Ghoulam, Hamsik and Insigne down that wing. Just over half the Napoli attacks came down that side, but City deserved their win.
Gundogan was chosen in midfield, having only started Carabao Cup games this season. He rewarded his manager for that faith with his first Champions League assist since October 2014.
Fabian Delph, not too long ago a marginalised midfielder, had another good performance at left-back. City probably will not face many tests as tough as this during the season.
A team that can beat Serie A's finest while having David Silva, Bernardo Silva, Gabriel Jesus, Walker and Yaya Toure - as well as Claudio Bravo and Eliaquim Mangala - on the bench are to be feared.
Man of the match - Nicolas Otamendi (Man City)
Match stats - City extend unbeaten record
- City extended their unbeaten streak to 22 games in all competitions, their best-ever run without a defeat (W18 D4).
- They found themselves behind for the first time since 26 August (v Bournemouth).
- The game saw Napoli lose a home game in the Champions League to an English side for the first time (W3).
- Dries Mertens has been directly involved in 16 goals in 17 games for Napoli this season in all competitions (12 goals, 4 assists).
- Nicolas Otamendi has netted two goals in his last three games for Manchester City in all competitions, as many as in his previous 93.
- Leroy Sane has been directly involved in eight goals in his last six games for City in all competitions (three goals, five assists).
- No City player has scored more Champions League goals this season than John Stones (three, level with Raheem Sterling).
Former Arsenal and England striker Ian Wright on BBC Radio 5 live
Sergio Aguero has not stopped scoring since his first day in the Premier League and it is just phenomenal.
He has never stopped scoring goals and it is right that a player of that calibre is now the record goalscorer in Manchester City's history.
City look to maintain their unbeaten start to the season when they host Arsenal in the Premier League on Sunday (14:15 GMT). Napoli - looking to do the same - are at Chievo 15 minutes earlier.
Napoli's next Champions League game is at home to Shakhtar Donetsk on Tuesday, 21 November (19:45 GMT). They have to win that game to have any chance of staying in the tournament. Manchester City host Feyenoord at the same time.
- 26KoulibalyBooked at 90mins
- 31GhoulamSubstituted forMaggioat 31'minutes
- 5AllanSubstituted forRogat 75'minutes
- 8JorginhoSubstituted forOunasat 82'minutes
- 14MertensBooked at 90mins
- 30OtamendiBooked at 90mins
- 17De Bruyne
- 8GündoganSubstituted forSilvaat 71'minutes
- 10AgüeroSubstituted forBernardo Silvaat 76'minutes
- 19SanéSubstituted forGabriel Jesusat 90'minutes
- 20Bernardo Silva
- 33Gabriel Jesus
- 42Y Touré
- Dr. Felix Brych
- Shots on Target
Second Half ends, Napoli 2, Manchester City 4.
Kalidou Koulibaly (Napoli) is shown the yellow card.
Dries Mertens (Napoli) is shown the yellow card for a bad foul.
Raheem Sterling (Manchester City) wins a free kick on the left wing.
Foul by Dries Mertens (Napoli).
Goal! Napoli 2, Manchester City 4. Raheem Sterling (Manchester City) right footed shot from the right side of the box to the bottom left corner. Assisted by Kevin De Bruyne following a fast break.
Nicolás Otamendi (Manchester City) is shown the yellow card for a bad foul.
Foul by Nicolás Otamendi (Manchester City).
Adam Ounas (Napoli) wins a free kick on the right wing.
Attempt missed. Bernardo Silva (Manchester City) right footed shot from the centre of the box is too high. Assisted by David Silva.
Foul by Gabriel Jesus (Manchester City).
Marko Rog (Napoli) wins a free kick in the defensive half.
Substitution, Manchester City. Gabriel Jesus replaces Leroy Sané.
David Silva (Manchester City) wins a free kick on the right wing.
Foul by Lorenzo Insigne (Napoli).
Attempt saved. Bernardo Silva (Manchester City) left footed shot from outside the box is saved in the centre of the goal. Assisted by Leroy Sané.
Corner, Manchester City. Conceded by Kalidou Koulibaly.
Substitution, Napoli. Adam Ounas replaces Jorginho.
Offside, Napoli. Marko Rog tries a through ball, but José Callejón is caught offside.