Match ends, Manchester City 2, Dinamo Zagreb 0.
Manchester City 2-0 Dinamo Zagreb: Raheem Sterling & Phil Foden score
Manchester City manager Pep Guardiola says he is "so sorry" for Phil Foden after he and Raheem Sterling came off the bench to score in a 2-0 win over a stubborn Dinamo Zagreb in the Champions League.
Sterling swept home from a Riyad Mahrez cross midway through the second half, then set up 19-year-old Foden in stoppage time as City's second successive win took them top of Group C.
Guardiola said: "He (Foden) has incredible finishing and made an incredible step forward tonight.
"I am so sorry for him - he deserves to play more minutes. I am sure he will contribute and help us more."
The England squad for the next round of internationals is named on Thursday.
"I am buzzing for Phil Foden," Sterling told BT Sport. "I want him in the national team. If he keeps going he will be there."
Foden said: "You have to show the manager what you can do each day in training. Every young kid wants to play but you have to keep patient."
In truth, this should have been a much bigger victory, with City wasting a host of first-half chances, but in the end they were grateful to Sterling for making the difference.
Until he broke the deadlock from close range with his ninth goal of the season, it had been an unexpectedly frustrating night for Guardiola's side, despite enjoying more than 80% of possession.
It was not the case that City struggled to create chances in the absence of the injured Kevin de Bruyne, but they were unable to take them until the second half.
Sergio Aguero was the first to waste an opportunity, with the Argentine rounding Zagreb keeper Dominik Livakovic from a poor backpass but seeing him recover with a diving save.
Bernardo Silva was also off target from two good openings and Aguero skied another effort before Ilkay Gundogan blasted a shot against the bar and David Silva fired wide from close range.
When Aguero did finally get the ball in the net, Dutch referee Serdar Gozubuyuk had already blown his whistle for a handball by Bernardo Silva.
The second half saw Croatian champions Dinamo, who were roared on by their fans throughout, put up more resistance before Sterling replaced Bernardo Silva, and quickly gave City their breakthrough.
More chances followed but it fell to Foden to finish off Zagreb with a fine first-time strike from a swift counter-attack.
It gives City their second successive Group C win and leaves them well placed to make the last 16 for a seventh successive season, while Zagreb have now suffered 13 away group game defeats in a row - a Champions League record.
Guardiola gets the result he wanted
Guardiola spoke before the game about having to "seduce" City fans who are reluctant to fall for the charms of the Champions League, preferring instead Premier League success.
So far, little seems to have changed, the competition's anthem being roundly booed again inside the Etihad before kick-off providing the main example of that.
The atmosphere after that was far from flat, but this one-sided affair was never going to be a fixture that provided the electricity from the stands that Guardiola craves.
While City's fans were enthusiastic enough throughout, their passion could never match that of the Zagreb supporters, who chanted throughout and removed their shirts en masse when they fell behind.
Guardiola's emotions were also on display, with his frustration with the officials evident on more than one occasion as he prowled his technical area.
But he got the result he wanted, with City's fifth successive win since their shock defeat at Norwich providing more evidence that, if they were ever in crisis, it is now over.
Guardiola hopes De Bruyne will be back soon
Guardiola said after the game that he does not think De Bruyne's groin problem is serious, which is a rare bit of of good news for City in a season when they have lost Leroy Sane and Aymeric Laporte to long-term injuries.
De Bruyne missed most of last season through injury and, while City's domestic treble clearly showed they were able to cope, his nine assists this season have been a timely reminder of his talents.
Without him, City's midfield were still able to carve Zagreb open easily enough before the break, but you felt they missed the brilliant Belgian more when the away side dug in after the break.
Although City tried to replicate De Bruyne's dangerous balls into the box, notably through Benjamin Mendy on the left, they were far less effective.
With Mahrez notably quieter than against Everton at the weekend, City did not carry the same threat on the ball in wide areas, at least until Sterling arrived on the scene.
Man of the match - Raheem Sterling (Man City)
Made a difference in attack immediately and should have won a free-kick as soon as he came on when he was fouled on the edge of the area. Guardiola was booked for complaining about that decision, but he was soon celebrating Sterling's goal.
City's next game sees them back at the Etihad to face Wolves in the Premier League on Sunday (14:00 BST).
They resume their Champions League campaign on 22 October, at home to Atalanta (20:00), when Dinamo Zagreb are away at Shakhtar Donetsk (17:55).
Magical Mahrez - the stats
- Manchester City have won five consecutive Champions League home matches for the first time.
- City completed 626 more passes than Dinamo Zagreb (727-100), also accumulating 71 more touches in their opponents' box (73-2).
- Pep Guardiola has won all three of his Champions League matches against Dinamo Zagreb - his sides have scored nine goals without conceding.
- Riyad Mahrez has been directly involved in eight goals in eight Champions League appearances for City (2 goals, 6 assists), with three of those coming this season.
- Raheem Sterling has been directly involved in 19 goals in his past 16 home appearances in the Champions League for City (11 goals, eight assists).
- 27CanceloBooked at 19mins
- 25FernandinhoBooked at 90mins
- 21SilvaSubstituted forFodenat 90+1'minutes
- 10AgüeroSubstituted forGabriel Jesusat 89'minutes
- 20Bernardo SilvaSubstituted forSterlingat 56'minutes
- 9Gabriel Jesus
- 28Théophile-CatherineSubstituted forGavranovicat 76'minutes
- 55PericBooked at 69mins
- 99OrsicSubstituted forGojakat 62'minutes
- 21PetkovicSubstituted forAtiemwenat 84'minutes
- Serdar Gözübüyük
- Shots on Target
Second Half ends, Manchester City 2, Dinamo Zagreb 0.
Goal! Manchester City 2, Dinamo Zagreb 0. Phil Foden (Manchester City) right footed shot from the centre of the box to the bottom left corner. Assisted by Raheem Sterling following a fast break.
Fernandinho (Manchester City) is shown the yellow card for a bad foul.
Foul by Fernandinho (Manchester City).
Dani Olmo (Dinamo Zagreb) wins a free kick in the defensive half.
Corner, Manchester City. Conceded by Amer Gojak.
Hand ball by Petar Stojanovic (Dinamo Zagreb).
Substitution, Manchester City. Phil Foden replaces David Silva.
Attempt missed. Gabriel Jesus (Manchester City) header from the centre of the box misses to the left. Assisted by Riyad Mahrez following a corner.
Corner, Manchester City. Conceded by Petar Stojanovic.
Gabriel Jesus (Manchester City) wins a free kick in the attacking half.
Foul by Emir Dilaver (Dinamo Zagreb).
Substitution, Manchester City. Gabriel Jesus replaces Sergio Agüero.
Offside, Dinamo Zagreb. Amer Gojak tries a through ball, but Iyayi Atiemwen is caught offside.
Attempt saved. Riyad Mahrez (Manchester City) right footed shot from very close range is saved in the centre of the goal. Assisted by Raheem Sterling.
Offside, Manchester City. Raheem Sterling tries a through ball, but David Silva is caught offside.
Substitution, Dinamo Zagreb. Iyayi Atiemwen replaces Bruno Petkovic.
Attempt missed. Rodrigo (Manchester City) left footed shot from outside the box is high and wide to the left. Assisted by Ilkay Gündogan following a corner.
Corner, Manchester City. Conceded by Emir Dilaver.
Corner, Manchester City. Conceded by Dino Peric.
Attempt missed. Ilkay Gündogan (Manchester City) right footed shot from the centre of the box is too high. Assisted by Riyad Mahrez.
Attempt missed. Sergio Agüero (Manchester City) right footed shot from the right side of the six yard box misses to the right. Assisted by David Silva.
Corner, Manchester City. Conceded by Marin Leovac.
Attempt blocked. Riyad Mahrez (Manchester City) left footed shot from the centre of the box is blocked. Assisted by Raheem Sterling.
Substitution, Dinamo Zagreb. Mario Gavranovic replaces Kévin Théophile-Catherine.
Ilkay Gündogan (Manchester City) wins a free kick on the left wing.
Foul by Bruno Petkovic (Dinamo Zagreb).
Attempt saved. Sergio Agüero (Manchester City) header from the centre of the box is saved in the centre of the goal. Assisted by João Cancelo with a cross.
Attempt missed. João Cancelo (Manchester City) left footed shot from outside the box is high and wide to the left. Assisted by Raheem Sterling.
Foul by Rodrigo (Manchester City).
Bruno Petkovic (Dinamo Zagreb) wins a free kick in the defensive half.
Benjamin Mendy (Manchester City) wins a free kick on the left wing.
Foul by Bruno Petkovic (Dinamo Zagreb).
Dino Peric (Dinamo Zagreb) is shown the yellow card for a bad foul.
Riyad Mahrez (Manchester City) wins a free kick in the attacking half.
Foul by Dino Peric (Dinamo Zagreb).
Offside, Manchester City. Riyad Mahrez tries a through ball, but Benjamin Mendy is caught offside.
Goal! Manchester City 1, Dinamo Zagreb 0. Raheem Sterling (Manchester City) right footed shot from the centre of the box to the high centre of the goal. Assisted by Riyad Mahrez following a corner.
Corner, Manchester City. Conceded by Dino Peric.