RB Leipzig vs Man City

4 November 2026 · Champions League · Matchday 4 · 2026/27 · Referee Marco Guida

Full time 2 – 3

Half-time: 0–1

  • Ridle Baku 49’
  • Antonio Nusa 61’
  • Castello Lukeba 37’ (og)
  • Enzo Fernández 58’
  • Erling Haaland 78’

Match summary

Man City beat RB Leipzig 3-2 on the road. Man City led 1-0 at half-time.

In the first half, Lukeba's own goal put Man City ahead in the 37th minute. In the second half, Ridle Baku equalised in the 49th minute, Enzo Fernández put Man City back in front with a header in the 58th minute, Antonio Nusa equalised in the 61st minute, and Erling Haaland won it in the 78th minute.

The chances backed that up: Man City created 2.20 expected goals (xG) from 12 shots to RB Leipzig's 0.87 from 14.

Man City claimed a tight Champions League victory on Matchday 4 despite registering fewer shots than their hosts. The visitors dominated possession with 64 percent to 36 percent, completing 673 passes compared to the hosts' 362, and generated an expected goals total of 2.34 against 0.80. Despite the statistical disparity, RB Leipzig matched their opponents closely on goal attempts, recording 13 shots to 12 and 6 shots on target to 5. Discipline proved costly for the hosts, who conceded 20 fouls and collected 4 yellow cards, while the visitors received 2 cautions.

The scoring opened in the 37th minute when Castello Lukeba turned the ball into his own net to give Man City a 0-1 half-time lead. Ridle Baku levelled for RB Leipzig in the 49th minute, before Enzo Fernández restored the visitors' lead in the 58th minute. Antonio Nusa equalised for the hosts in the 61st minute at 2-2. The decisive moment arrived in the 78th minute when Erling Haaland scored from a chance valued at 0.61 expected goals to secure a 2-3 final score. Jérémy Doku and Abdukodir Khusanov received late yellow cards for the visitors.

Match stats

35% Possession 65%
14 Shots 12
6 Shots on target 5
5 Corners 3
60 Attacks 99
36 Dangerous attacks 47
361 Passes 676
84.5% Pass accuracy 90.4%
16 Tackles 17
20 Fouls 7
4 Yellow cards 2
3 Offsides 5

Key events

RB Leipzig Man City
Kick-off
Antonio NusaShot on target
14’
Corner
15’
17’
Corner
28’
33’
34’
Corner
37’
Castello LukebaOwn goal0-1 (Man City)
39’
Erling HaalandShot on target
Brajan GrudaShot on target
42’
Second half underway
Half-time0-1
Corner
46’
Christoph BaumgartnerShot on target
47’
Corner
47’
48’
Ridle BakuRight foot shot1-1 (RB Leipzig)
49’
53’
Erling HaalandShot on target
Ridle BakuShot on target
55’
58’
Enzo FernándezHeader1-2 (Man City)
Antonio NusaLeft foot shot2-2 (RB Leipzig)
61’
67’
71’
Corner
Corner
73’
75’
Rayan CherkiShot on target
75’
Corner
77’
78’
Erling HaalandLeft foot shot2-3 (Man City)
83’
88’
Jérémy DokuTime wasting
90+4’
Full-time2-3

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.87 2.20 37’ Castello Lukeba (Man City) own goal, 0-1 37’ 49’ Ridle Baku (RB Leipzig), 1-1 49’ 58’ Enzo Fernández (Man City), 1-2 58’ 61’ Antonio Nusa (RB Leipzig), 2-2 61’ 78’ Erling Haaland (Man City), 2-3 78’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.87 2.20 37’ Castello Lukeba (Man City) own goal, 0-1 Lukeba 37’ 49’ Ridle Baku (RB Leipzig), 1-1 Baku 49’ 58’ Enzo Fernández (Man City), 1-2 Fernández 58’ 61’ Antonio Nusa (RB Leipzig), 2-2 Nusa 61’ 78’ Erling Haaland (Man City), 2-3 Haaland 78’
RB Leipzig 0.87 xGMan City 2.20 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Man City attacking RB Leipzig attacking 
78’ Erling Haaland (Man City), open play, 0.62 xG, goal 58’ Enzo Fernández (Man City), open play, 0.35 xG, goal 53’ Erling Haaland (Man City), open play, 0.32 xG, saved 40’ Nico O'Reilly (Man City), open play, 0.21 xG, off target 61’ Antonio Nusa (RB Leipzig), open play, 0.20 xG, goal 75’ Rayan Cherki (Man City), open play, 0.15 xG, saved 39’ Erling Haaland (Man City), open play, 0.14 xG, saved 31’ Brajan Gruda (RB Leipzig), open play, 0.12 xG, off target 17’ David Raum (RB Leipzig), open play, 0.10 xG, blocked 84’ Rayan Cherki (Man City), open play, 0.08 xG, hit the woodwork 8’ Rayan Cherki (Man City), open play, 0.08 xG, off target 90+3’ Jérémy Doku (Man City), open play, 0.08 xG, off target 36’ Phil Foden (Man City), open play, 0.07 xG, off target 90+2’ Ezechiel Banzuzi (RB Leipzig), set piece, 0.07 xG, off target 76’ Elliot Anderson (Man City), from a corner, 0.07 xG, off target 55’ Ridle Baku (RB Leipzig), open play, 0.06 xG, saved 73’ Tidiam Gomis (RB Leipzig), open play, 0.06 xG, blocked 52’ Ezechiel Banzuzi (RB Leipzig), open play, 0.05 xG, off target 14’ Antonio Nusa (RB Leipzig), open play, 0.05 xG, saved 30’ Christoph Baumgartner (RB Leipzig), open play, 0.04 xG, off target 47’ Christoph Baumgartner (RB Leipzig), open play, 0.04 xG, saved 49’ Ridle Baku (RB Leipzig), open play, 0.03 xG, goal 90+4’ Rayan Cherki (Man City), open play, 0.04 xG, blocked 14’ Christoph Baumgartner (RB Leipzig), open play, 0.02 xG, blocked 42’ Brajan Gruda (RB Leipzig), open play, 0.02 xG, saved 74’ Rocco Reitz (RB Leipzig), from a corner, 0.02 xG, off target 37’ Castello Lukeba (RB Leipzig), own goal 78’ Erling Haaland (Man City), open play, 0.62 xG, goal 58’ Enzo Fernández (Man City), open play, 0.35 xG, goal 53’ Erling Haaland (Man City), open play, 0.32 xG, saved 40’ Nico O'Reilly (Man City), open play, 0.21 xG, off target 61’ Antonio Nusa (RB Leipzig), open play, 0.20 xG, goal 75’ Rayan Cherki (Man City), open play, 0.15 xG, saved 39’ Erling Haaland (Man City), open play, 0.14 xG, saved 31’ Brajan Gruda (RB Leipzig), open play, 0.12 xG, off target 17’ David Raum (RB Leipzig), open play, 0.10 xG, blocked 84’ Rayan Cherki (Man City), open play, 0.08 xG, hit the woodwork 8’ Rayan Cherki (Man City), open play, 0.08 xG, off target 90+3’ Jérémy Doku (Man City), open play, 0.08 xG, off target 36’ Phil Foden (Man City), open play, 0.07 xG, off target 76’ Elliot Anderson (Man City), from a corner, 0.07 xG, off target 90+2’ Ezechiel Banzuzi (RB Leipzig), set piece, 0.07 xG, off target 55’ Ridle Baku (RB Leipzig), open play, 0.06 xG, saved 73’ Tidiam Gomis (RB Leipzig), open play, 0.06 xG, blocked 14’ Antonio Nusa (RB Leipzig), open play, 0.05 xG, saved 52’ Ezechiel Banzuzi (RB Leipzig), open play, 0.05 xG, off target 30’ Christoph Baumgartner (RB Leipzig), open play, 0.04 xG, off target 47’ Christoph Baumgartner (RB Leipzig), open play, 0.04 xG, saved 90+4’ Rayan Cherki (Man City), open play, 0.04 xG, blocked 49’ Ridle Baku (RB Leipzig), open play, 0.03 xG, goal 14’ Christoph Baumgartner (RB Leipzig), open play, 0.02 xG, blocked 74’ Rocco Reitz (RB Leipzig), from a corner, 0.02 xG, off target 42’ Brajan Gruda (RB Leipzig), open play, 0.02 xG, saved 37’ Castello Lukeba (RB Leipzig), own goal
Size shows xG Goal On target Off target or blocked

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

Lineups

RB Leipzig 4-3-3 Starting XI
Vandevoordt
Raum
Orbán
Lukeba
Baku 74’
Aynaoui 74’
Baumgartner 57’
Banzuzi
Nusa 73’
Rômulo 67’
Gruda
Man City 4-1-4-1 Starting XI
Donnarumma
O'Reilly
Khusanov
Guéhi
Nunes 79’
Anderson 83’
Ndiaye 83’
Fernández 83’
Foden 64’
Cherki
Haaland

Player stats

Goalkeeper1 player
90′ 3 3 39 – – – – –
Defenders5 players
Ridle Baku Taken off
74′ 1 – – 1 – 20 4 1 –
90′ 2 – 1 2 – 32 – – – –
90′ – 1 – 1 – 40 1 – – –
90′ 6 4 – 8 – 34 4 – –
Benjamin Henrichs Came on as a substitute
16′ – – – – – 10 1 – – –
Midfielders7 players
Neil El Aynaoui Taken off
74′ – – 39 – – 2 3 3 2 1
Christoph Baumgartner Taken off
57′ – – 18 1 – – 1 – 1 –
90′ – – 29 – – 2 2 5 1 2 –
90′ – 1 38 1 – 1 – 3 2 1 –
Antonio Nusa Taken off
73′ 1 – 25 4 – 1 – 5 – 1 –
Rocco Reitz Came on as a substitute
17′ – – 3 – – 1 – 2 – 1 –
Nicolas Seiwald Came on as a substitute
16′ – – 7 – – – – – 1 – –
Forwards3 players
Rômulo Taken off
67′ – – – – – – 1 1 – 14 –
Christopher Nkunku Came on as a substitute
33′ – 1 – – – – 1 – – 9 –
Tidiam Gomis Came on as a substitute
23′ – – 1 – 0.06 – – 3 1 5 –
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.

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.