Gabriel Jesus scored a hat-trick while Phil Foden also got on the score-sheet as Manchester City swept Dinamo Zagreb aside in the final Group C game.
Jesus has now surpassed 100 career goals with 12 of those coming in the Champions League.
Having already qualified as group winners, Pep Guardiola made eight changes with Foden handed his first start since October.
Dinamo Zagreb needed to win and hope Shakhtar Donetsk failed to beat Atalanta to take second place in the group. They made a fine start to the game with the highly-rated Daniel Olmo breaking the deadlock with a special first-time volley in the 10th-minute.
But 10 minutes before the interval, City levelled, Riyad Mahrez standing up a pinpoint cross for Jesus who headed in for his first of the night.
City took full control of proceedings after the restart and within 10 minutes of the second half Jesus had notched two more, both of which involved the super Foden and Benjamin Mendy down the left flank.
Foden grabbed the goal his performance deserved with a cool finish from Cancelo's cut-back to complete a night of positives for Pep Guardiola.
Man City qualify unbeaten from the group, seven points ahead of second-placed Atalanta and could play any one of Napoli, Borussia Dortmund, Lyon, Real Madrid, Atletico Madrid or Bayer Leverkusen in the last 16.
Another night of significance for Foden: Pep Guardiola stressed in his pre-match conference that he believed the 19-year-old could be a successor for David Silva, who is leaving the club at the end of the season. His comments may have come as a surprise for some, as Foden had not started a single game for City since October. But once again the teenager demonstrated why he is so highly rated with yet another aspiring performance. He was full of energy, picking the ball up from deep areas and constantly running at defenders with pace and trickery. Sound familiar? He linked up particularly well with Jesus, whose last 13 goals have all come away from the Etihad.
MAN OF THE MATCH
Phil Foden (Man City): Jesus may have scored a hat-trick but almost everything in the City attack was orchestrated by Foden. He simply must get more game time.
Dinamo Zagreb: Livakovic 5, Stojanovic 5, Dilaver 5, Gojak 5, Moubandje 5, Ademi 6, Kadzior 5, Moro 5, Dani Olmo 7, Petkovic 5, Orsic 6.. subs: Hajrovic, Majer, Dira 5.
Man City: Bravo 6, Cancelo 7, E Garcia 7, Otamendi 7, Mendy 8, Gundogan 6, Rodri 7, Foden 9, B Silva 7, Jesus 8, Mahrez 7.. subs: Sterling 5, Zinchenko 5, Harwood-Bellis N/A.
10' - GOAL! Dinamo Zagreb 1-0 Man City (Olmo): Oh, that is special! The hosts have lift off! A simple in-swinger from the right picks out Olmo who smashes the opener in with the outside of his right foot. Bravo got a touch to it but there was so much pace and power on the volley he couldn't keep it out.
34' - GOAL! Dinamo Zagreb 1-1 Man City (Jesus): Jesus levels for City with a lovely header from a Mahrez cross! Foden was hacked down in the build-up by a Dinamo player who injured himself in the process and the hosts are livid that City didn't kick the ball out! Ademi is booked for his protests.
50' - GOAL! Dinamo Zagreb 1-2 Man City (Jesus): This is a lovely team goal, finished by Jesus! The Brazilian, Mendy and Foden link-up to devastating effect, the latter playing the final pass and Jesus checks inside to coolly curl it past the goalkeeper.
54' - GOAL! Dinamo Zagreb 1-3 Man City (Jesus): Jesus has his hat-trick! That is beautiful! It comes from the left flank again, and again Foden and Mendy are involved. Foden feeds Mendy whose delightful cross is proded home by Jesus six yards out.
84' - GOAL! Dinamo Zagreb 1-4 Man City (Foden): Foden grabs the goal his performance deserves! He nips in front of his marker to slot home from Cancelo's cut-back.
- Manchester City have now scored 501 goals in 199 games in all competitions under Pep Guardiola - 96 more than any other English team since the Spaniard was appointed in 2016.
- Gabriel Jesus has now surpassed 100 career goals in all competitions, with 55 of those coming for current club Manchester City (28 for Palmeiras, 18 for Brazil).
- Aged 22 years and 252 days, Jesus is now the youngest Brazilian player to reach 10 or more goals in the Champions League - overtaking Neymar who did so aged 23 years and 75 days.
- Each of Jesus’ last 12 goals for Man City in all competitions have come away from the Etihad (including neutral venues).
- City have conceded the opening goal of the game on eight occasions already this season, just one fewer than they did in the whole of the 2018-19 campaign (61 games).