Manchester City commenced their UEFA Champions League campaign with a hard-fought 2-0 win over FC Porto at the Estádio do Dragão.
Erling Haaland's 58th and 59th UEFA Champions League goals proved to be the difference as Enzo Maresca's Citizens tamed Francesco Farioli's energetic Porto outfit.
In conditions that would be more associated to Manchester than Porto, the visitors largely controlled first half proceedings and the hosts had Diogo Costa to thank for keeping them in the contest at the half-time interval as the Portuguese goalkeeper produced several impressive stops.
But Maresca's men didn't take long in the second half to carve their breakthrough.
Rayan Cherki kept the ball in play to find Enzo Fernandez, and the Argentine demonstrated excellent composure to caress a cross into the path of Haaland, who awkwardly cushioned his header into the far corner.
Rather than build on their advantage, Man City's grip of the match wilted. They were nearly the architects of their own downfall, with a lax Gianluigi Donnarumma pass deflecting off Porto winger William Gomes and skimming wide of the goal.
But the 2023 UEFA Champions League victors rode out a partisan atmosphere inside the Estádio do Dragão, and they were rewarded with a second in stoppage time as Haaland collected Rayan Ait-Nouri's pass in the penalty area before producing a composed finish.
The goal saw Haaland surpass Thomas Muller in the all-time UEFA Champions League goalscoring charts and it inflicted Porto's first home defeat of the calendar year.
37' - Yellow card for Josko Gvardiol
47' - Goal for Man City! Scored by Erling Haaland, assisted by Enzo Fernandez
48' - Abdukodir Khusanov replaced Josko Gvardiol
49' - Yellow card for Gianluigi Donnarumma
62' - Iliman Ndiaye replaced Antoine Semenyo, Elliot Anderson replaced Rayan Cherki
68' - In-Beom Hwang replaced Alan Varela, Borja Sainz replaced William Gomes
73' - Santiago Gimenez replaced Andre Silva, Francisco Moura replaced Martim Fernandes
75' - Mateo Kovacic replaced Ayyoub Bouaddi, Rayan Ait-Nouri replaced Phil Foden
83' - Seko Fofana replaced Gabi Veiga
90+1' - Goal for Man City! Scored by Erling Haaland, assisted by Rayan Ait-Nouri
90+3' - Yellow card for Pablo Rosario
90+3' - Yellow card for Erling Haaland
Porto | 0-1 | Manchester City |
36% | Possession | 64% |
0.22 | Expected Goals | 2.30 |
5 | Shots | 20 |
0 | Shots on Target | 10 |
8 | Goalkeeper Saves | 0 |
0 | Big Chances | 6 |
2 | Corners | 5 |
354 | Total Passes | 640 |
13 | Successful Tackles | 10 |
15 | Clearances | 10 |
1 | Yellow Cards | 3 |
0 | Red Cards | 0 |