Porto vs Man City

8 September 2026 · Champions League · Matchday 1 · 2026/27 · Referee Szymon Marciniak

Full time 0 – 2

Half-time: 0–0

  • Erling Haaland 47’, 90+1’

Match summary

Man City won 2-0 away at Porto. It was goalless at half-time.

Erling Haaland put Man City ahead with a header in the 47th minute and Haaland made it 0-2 from a corner in stoppage time.

The chances backed that up: Man City created 2.55 expected goals (xG) from 20 shots to Porto's 0.22 from 5.

Match stats

36% Possession 64%
5 Shots 20
0 Shots on target 10
2 Corners 5
65 Attacks 98
27 Dangerous attacks 57
353 Passes 635
80.7% Pass accuracy 92.8%
19 Tackles 18
10 Fouls 17
1 Yellow cards 3
7 Offsides 1

Key events

Porto Man City
Kick-off
16’
Antoine SemenyoShot on target
21’
Erling HaalandShot on target
21’
Corner
29’
Phil FodenShot on target
32’
Rayan CherkiShot on target
32’
Erling HaalandShot on target
37’
Half-time0-0
47’
Erling HaalandHeader0-1 (Man City)
Second half underway
49’
Corner
53’
66’
Iliman NdiayeShot on target
77’
Corner
Corner
84’
F. FarioliManagerArgument
86’
90’
Elliot AndersonShot on target
90’
Corner
90+1’
Erling HaalandRight foot shot0-2 (Man City)
90+3’
Erling HaalandArgument
Pablo RosarioArgument
90+3’
90+4’
Enzo FernándezShot on target
90+4’
Corner
90+5’
Corner
Full-time0-2

How the chances added up

Running total of expected goals (xG) for each side through the match. xG rates each chance by how often similar shots are scored. A goal is marked where it was scored.

0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.22 2.55 47’ Erling Haaland (Man City), 0-1 47’ 90+1’ Erling Haaland (Man City), 0-2 90+1’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.22 2.55 47’ Erling Haaland (Man City), 0-1 Haaland 47’ 90+1’ Erling Haaland (Man City), 0-2 Haaland 90+1’
Porto 0.22 xGMan City 2.55 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Man City attacking Porto attacking 
32’ Erling Haaland (Man City), open play, 0.67 xG, saved 32’ Rayan Cherki (Man City), open play, 0.39 xG, saved 21’ Erling Haaland (Man City), open play, 0.24 xG, saved 47’ Erling Haaland (Man City), open play, 0.23 xG, goal 85’ Rayan Aït-Nouri (Man City), open play, 0.13 xG, off target 90+1’ Erling Haaland (Man City), from a corner, 0.12 xG, goal 27’ Erling Haaland (Man City), open play, 0.11 xG, off target 83’ Erling Haaland (Man City), open play, 0.11 xG, off target 69’ Phil Foden (Man City), open play, 0.10 xG, blocked 76’ Pepê (Porto), open play, 0.10 xG, off target 29’ Phil Foden (Man City), open play, 0.09 xG, saved 77’ Rayan Aït-Nouri (Man City), open play, 0.07 xG, blocked 90+5’ Marc Guéhi (Man City), from a corner, 0.07 xG, off target 66’ Iliman Ndiaye (Man City), open play, 0.05 xG, saved 57’ Alan Varela (Porto), open play, 0.04 xG, off target 84’ Seko Fofana (Porto), open play, 0.04 xG, blocked 90+1’ Iliman Ndiaye (Man City), from a corner, 0.03 xG, off target 90+4’ Enzo Fernández (Man City), direct free kick, 0.03 xG, off target 62’ William Gomes (Porto), open play, 0.02 xG, off target 90+5’ Enzo Fernández (Man City), open play, 0.03 xG, blocked 53’ Ayyoub Bouaddi (Man City), open play, 0.02 xG, blocked 90’ Elliot Anderson (Man City), open play, 0.02 xG, saved 90+4’ Enzo Fernández (Man City), open play, 0.02 xG, saved 16’ Antoine Semenyo (Man City), open play, 0.02 xG, saved 63’ Gabri Veiga (Porto), set piece, 0.01 xG, off target 32’ Erling Haaland (Man City), open play, 0.67 xG, saved 32’ Rayan Cherki (Man City), open play, 0.39 xG, saved 21’ Erling Haaland (Man City), open play, 0.24 xG, saved 47’ Erling Haaland (Man City), open play, 0.23 xG, goal 85’ Rayan Aït-Nouri (Man City), open play, 0.13 xG, off target 90+1’ Erling Haaland (Man City), from a corner, 0.12 xG, goal 27’ Erling Haaland (Man City), open play, 0.11 xG, off target 83’ Erling Haaland (Man City), open play, 0.11 xG, off target 69’ Phil Foden (Man City), open play, 0.10 xG, blocked 76’ Pepê (Porto), open play, 0.10 xG, off target 29’ Phil Foden (Man City), open play, 0.09 xG, saved 90+5’ Marc Guéhi (Man City), from a corner, 0.07 xG, off target 77’ Rayan Aït-Nouri (Man City), open play, 0.07 xG, blocked 66’ Iliman Ndiaye (Man City), open play, 0.05 xG, saved 57’ Alan Varela (Porto), open play, 0.04 xG, off target 84’ Seko Fofana (Porto), open play, 0.04 xG, blocked 90+1’ Iliman Ndiaye (Man City), from a corner, 0.03 xG, off target 90+4’ Enzo Fernández (Man City), direct free kick, 0.03 xG, off target 90+5’ Enzo Fernández (Man City), open play, 0.03 xG, blocked 62’ William Gomes (Porto), open play, 0.02 xG, off target 90’ Elliot Anderson (Man City), open play, 0.02 xG, saved 90+4’ Enzo Fernández (Man City), open play, 0.02 xG, saved 16’ Antoine Semenyo (Man City), open play, 0.02 xG, saved 53’ Ayyoub Bouaddi (Man City), open play, 0.02 xG, blocked 63’ Gabri Veiga (Porto), set piece, 0.01 xG, off target
Size shows xG Goal On target Off target or blocked

Hover or tap a shot for the player, minute and xG.

Lineups

Porto 4-3-3 Starting XI
Costa
Pérez
Kiwior
Costa
Fernandes 73’
Rosario
Varela 68’
Veiga 83’
Silva 73’
Gomes 68’
Pepê
Man City 4-2-3-1 Starting XI
Donnarumma
Gvardiol 48’
Guéhi
Dias
Nunes
Bouaddi 75’
Fernández
Semenyo 62’
Foden 75’
Cherki 62’
Haaland 2

Player stats

Goalkeeper1 player
90′ 8 2 48 – – – – –
Defenders5 players
90′ 2 1 – 7 – 21 2 – – –
90′ 2 – 2 5 2 31 – – – –
90′ 1 – 2 5 3 62 – – – –
Martim Fernandes Taken off
73′ 2 – – 3 – 34 – – – –
Francisco Moura Came on as a substitute
17′ 1 – – 1 – 7 – – – –
Midfielders7 players
90′ – – 24 1 – 2 – 5 4 3
Alan Varela Taken off
68′ – – 23 1 – 1 – 2 – – –
Gabri Veiga Taken off
83′ – – 33 – – 4 – 7 2 2 –
William Gomes Taken off
68′ – – 7 – – 2 – 3 1 1 –
Pepê
90′ – – 26 1 – – – 3 1 1 –
Hwang In-beom Came on as a substitute
22′ – – 9 – – – – 1 – – –
Seko Fofana Came on as a substitute
13′ – – 3 – – – – – – – –
Forwards3 players
André Silva Taken off
73′ – – – – – – – 6 1 16 –
Borja Sainz Came on as a substitute
22′ – – – – – – 1 – – 6 –
Santiago Giménez Came on as a substitute
17′ – – – – – – 1 2 – 4 –
Came on Taken off Sent off Red is the most in that position for the team

Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists. A blank cell means that figure is not available for that player.

Form going into the game

Last five Champions League games before this one, oldest first. Select one to open it.

Previous and next meeting

Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results from Bzzoiro Sports Data.