Winger Micah Hamilton scored on a dream Manchester City debut as he helped his side beat Red Star Belgrade and reach the Champions League last 16 with a 100% record.
Hamilton, 20, has been with the club since the age of nine and put City ahead after 19 minutes in a hostile atmosphere in Serbia.
Matheus Nunes found him down the right wing and Hamilton, who has represented England at under-16 level, got into the penalty area and shifted the ball to create space before powerfully firing into the roof of the net.
On a great night for City's academy, 20-year-old Oscar Bobb also scored his first goal for the club with a jinking run at the home defence, before curling in the second on 63 minutes.
Hwang In-beom pulled one back for Red Star when he got free of marker Kalvin Phillips and shot low past Stefan Ortega.
But Phillips made amends when he converted a penalty, after the impressive Hamilton had been fouled.
Aleksandar Katai headed in a late second for Red Star, but European champions City were not to be denied and follow in the footsteps of Real Madrid to advance into the last 16 with six wins from six group matches.
Pep Guardiola's side become only the second English team to achieve this, after Jurgen Klopp's Liverpool in 2021-22.
The draw for the last 16 will be held at Uefa's headquarters in Nyon, Switzerland at 11:00 GMT on Monday, 18 December.
City will face one of the sides to have progressed as group runners-up, with one of their potential opponents being Inter Milan - the team they beat in last season's final.
From ball boy to Champions League goalscorer

City boss Guardiola was delighted with Hamilton's performance and said: "What a goal and what a game.
"I'm so happy for him. He's training often with us and we saw his skills one against one. He scored a fantastic goal and made a penalty."
During the match, footage from September 2017 emerged on social media showing Guardiola talking to a then 13-year-old Hamilton, who was a ball boy during City's 5-0 win over Crystal Palace.
Hamilton said it felt "surreal" to now be scoring for the club and was excited for his future.
"The manager has given us the opportunity in training and in the game. Playing with the best players, you always improve," said Hamilton.
"He put me on the right wing, something different for me. I'd not really played there. I saw it as a challenge and I took it and I enjoyed every moment.
"It's definitely just the start and [I want] to kick on from here."
Youngsters seize chance to shine
Having won their opening five group matches, City were already guaranteed to finish top of Group G to give Guardiola the luxury of being able to make changes in their penultimate match before flying to Saudi Arabia to play in the Club World Cup.
Only Mateo Kovacic and Jack Grealish remained from the XI that began the 2-1 win over Luton, with goalkeeper Ederson rested and top goalscorer Erling Haaland still unavailable because of a foot injury.
Hamilton's inclusion was the main headline, while attacking midfielder Bobb made his first start in the Champions League.
England midfielder Phillips was named in the first XI for only the second time this season, having played in City's 1-0 loss to Newcastle in the third round of the Carabao Cup in September.
Last week Guardiola apologised to Phillips for not giving him more time on the pitch, while also praising his professionalism despite struggling to regularly feature following his £45m move from Leeds in July 2022.
Phillips responded with a hard-working, efficient performance in the heart of City's midfield that saw him score their third from the penalty spot, though he did pick up a booking in the second half and failed to track Hwang's run for Red Star's first goal.
But Guardiola's main source of pride would have been the performances of his younger players, with 18-year-old defensive midfielder Mahamadou Susoho also making his debut as a second-half substitute.

Hamilton nearly got his second goal, but curled a shot just wide and also nearly set up Bobb but the Norwegian, at full stretch, could not get on the end of a teasing low cross across the face of goal.
Bobb was not to be denied as he took on a number of defenders before a sublime finish to double City's lead.
Red Star, European champions in 1991, lost 3-1 in September's reverse fixture in Manchester and were already guaranteed to finish bottom of the group.
Back-up City goalkeeper Ortega made two excellent saves in quick succession to deny Peter Olayinka and Guelor Kanga, but conceded twice in the last 14 minutes - either side of Phillips' penalty.
Guardiola felt the performance was another sign of how strong the club's youth set-up is.
"Congratulations to all at the academy for the last years," added Guardiola. "How many players came up, how many players we sold who are playing already in the Premier League and Championship, and more?
"It is not easy to give opportunities at this level. It is really good to see them play.
"I'm very pleased for the result, for the performance in general, the effort from everyone, how the seniors helped the young lads."

Player of the match
PhillipsKalvin Phillips
with an average of 7.94Red Star Belgrade
Squad number30Player nameBukari
Average rating6.04
Squad number66Player nameHwang In-beom
Average rating5.91
Squad number33Player nameMijailovic
Average rating5.90
Squad number22Player nameMijatovic
Average rating5.86
Squad number9Player nameNdiaye
Average rating5.86
Squad number8Player nameKanga
Average rating5.81
Squad number70Player nameKabic
Average rating5.76
Squad number10Player nameKatai
Average rating5.75
Squad number14Player nameOlayinka
Average rating5.75
Squad number5Player nameSpajic
Average rating5.63
Squad number23Player nameRodic
Average rating5.58
Squad number15Player nameDragovic
Average rating5.58
Squad number24Player nameDjiga
Average rating5.58
Squad number37Player nameLucic
Average rating5.56
Squad number18Player nameGlazer
Average rating5.55
Squad number2Player nameNedeljkovic
Average rating5.39
Manchester City
Squad number4Player namePhillipsAverage rating7.94
Squad number92Player nameHamiltonAverage rating7.87
Squad number52Player nameBobbAverage rating7.54
Squad number5Player nameStonesAverage rating7.43
Squad number82Player nameLewisAverage rating7.25
Squad number47Player nameFodenAverage rating7.17
Squad number6Player nameAkéAverage rating7.14
Squad number20Player nameBernardo SilvaAverage rating7.10
Squad number27Player nameMatheus NunesAverage rating7.07
Squad number25Player nameAkanjiAverage rating6.99
Squad number10Player nameGrealishAverage rating6.93
Squad number18Player nameOrtegaAverage rating6.90
Squad number76Player nameSusohoAverage rating6.86
Squad number8Player nameKovacicAverage rating6.79
Squad number21Player nameGómezAverage rating6.62
Line-ups
Red Star Belgrade
Formation 5-3-2
18Glazer
2Nedeljkovic24Djiga5Spajic15Dragovic14Olayinka
8Kanga33Mijailovic66Hwang In-beom
30Bukari9Ndiaye
- 18Glazer
- 2NedeljkovicSubstituted forKabicat 78'minutes
- 24DjigaBooked at 84mins
- 5SpajicBooked at 45minsSubstituted forRodicat 65'minutes
- 15Dragovic
- 14OlayinkaSubstituted forLucicat 57'minutes
- 8KangaSubstituted forKataiat 57'minutes
- 33MijailovicBooked at 65mins
- 66Hwang In-beom
- 30Bukari
- 9NdiayeSubstituted forMijatovicat 57'minutes
Substitutes
- 3Degenek
- 6Stamenic
- 10Katai
- 17Krasso
- 19Milunovic
- 20Kangwa
- 22Mijatovic
- 23Rodic
- 27Vasiljevic
- 37Lucic
- 70Kabic
- 80Mitrovic
Man City
Formation 4-2-3-1
18Ortega
82Lewis5Stones25Akanji21Gómez
4Phillips8Kovacic
92Hamilton27Nunes10Grealish
52Bobb
- 18Ortega
- 82Lewis
- 5StonesSubstituted forAkéat 86'minutes
- 25Akanji
- 21Gómez
- 4PhillipsBooked at 52mins
- 8KovacicSubstituted forSusohoat 76'minutes
- 92Hamilton
- 27NunesSubstituted forBernardo Silvaat 82'minutes
- 10GrealishSubstituted forFodenat 45'minutes
- 52Bobb
Substitutes
- 2Walker
- 3Rúben Dias
- 6Aké
- 16Rodri
- 19Álvarez
- 20Bernardo Silva
- 24Gvardiol
- 33Carson
- 47Foden
- 68Alleyne
- 76Susoho
- 88Grant
Referee:Aliyar Aghayev
Attendance:49,443
Match Stats
Live Text
Match ends, Red Star Belgrade 2, Manchester City 3.
Second Half ends, Red Star Belgrade 2, Manchester City 3.
Offside, Manchester City. Micah Hamilton is caught offside.
Delay over. They are ready to continue.
Delay in match because of an injury Sergio Gómez (Manchester City).
Goal! Red Star Belgrade 2, Manchester City 3. Aleksandar Katai (Red Star Belgrade) header from the centre of the box to the bottom left corner. Assisted by Hwang In-Beom with a cross following a corner.
Corner, Red Star Belgrade. Conceded by Manuel Akanji.
Attempt blocked. Osman Bukari (Red Star Belgrade) right footed shot from the left side of the box is blocked. Assisted by Jovan Mijatovic.
Offside, Red Star Belgrade. Jovan Mijatovic is caught offside.
Foul by Mahamadou Susoho (Manchester City).
Jovan Mijatovic (Red Star Belgrade) wins a free kick on the right wing.
Substitution, Manchester City. Nathan Aké replaces John Stones.
Goal! Red Star Belgrade 1, Manchester City 3. Kalvin Phillips (Manchester City) converts the penalty with a right footed shot to the bottom left corner.
Nasser Djiga (Red Star Belgrade) is shown the yellow card for a bad foul.
Penalty Manchester City. Micah Hamilton draws a foul in the penalty area.
Penalty conceded by Nasser Djiga (Red Star Belgrade) after a foul in the penalty area.
Substitution, Manchester City. Bernardo Silva replaces Matheus Nunes.
Matheus Nunes (Manchester City) wins a free kick on the right wing.
Foul by Hwang In-Beom (Red Star Belgrade).
Attempt missed. Phil Foden (Manchester City) left footed shot from outside the box is close, but misses the top left corner.
ncG1vNJzZmivp6x7o67CZ5qopV%2BovbC%2B02idqKekl66tuI5vbm9xaWmFcg%3D%3D