Birmingham vs Millwall

3 November 2026 · Championship · 2026/27 · Referee David Webb

Full time 3 – 0

Half-time: 3–0

  • Alex Cochrane 1’
  • Max Bird 16’
  • Jay Stansfield 29’

Match summary

Birmingham won comfortably, 3-0 at home to Millwall. Birmingham led 3-0 at half-time.

Alex Cochrane put Birmingham ahead in the first minute, Max Bird made it 2-0 in the 16th minute, and Jay Stansfield made it 3-0 in the 29th minute.

There was little between the sides on chances: Birmingham created 1.35 expected goals (xG) from 19 shots, Millwall 1.43 from 16.

Birmingham secured a 3-0 home victory against Millwall in the Championship on matchday 14, dominating the encounter with 55 percent possession and 19 shots compared to the visitors' 15. The hosts registered 8 shots on target against 2 from Millwall, while also earning 6 corners to their opponents' 2. Birmingham completed 479 passes with a 78.1 percent accuracy, outperforming Millwall's 379 passes at 73.4 percent. The expected goals finished at 1.18 for Birmingham and 0.92 for Millwall. Both sides committed fouls resulting in 1 yellow card apiece, and notable chances included missed efforts from Phil Neumann and Jhon Solís for Birmingham, alongside an off-target attempt by Kyrell Lisbie for Millwall.

The match was effectively decided in a prolific first half where Birmingham scored 3 goals. Alex Cochrane opened the scoring in the 1 minute, followed by Max Bird adding the second in the 16 minute. Jay Stansfield then netted the third in the 29 minute to establish a 3-0 half-time scoreline. Following the interval, Millwall introduced Daniel Kelly and Mark Sykes at the start of the second half, later bringing on Romain Esse, Josh Coburn, and Yanis Issoufou. Discipline saw Jordi Osei-Tutu booked for a foul in the 55 minute, with Birmingham's Alex Cochrane receiving a yellow card for a foul in the 56 minute. Both teams used a total of 10 substitutions before the match concluded at 3-0.

Match stats

55% Possession 45%
19 Shots 15
8 Shots on target 2
6 Corners 2
112 Attacks 116
54 Dangerous attacks 61
479 Passes 380
78.1% Pass accuracy 73.2%
11 Tackles 11
12 Fouls 9
1 Yellow cards 1
1 Offsides 1

Key events

Birmingham Millwall
Kick-off
Alex CochraneLeft foot shot1-0 (Birmingham)
1’
12’
Caleb TaylorShot on target
Max BirdLeft foot shot2-0 (Birmingham)
16’
Corner
20’
Corner
20’
Jay StansfieldShot on target
21’
Jhon SolísShot on target
24’
Jay StansfieldLeft foot shot3-0 (Birmingham)
29’
Corner
35’
Corner
40’
Half-time3-0
Second half underway
55’
56’
57’
Jake CooperShot on target
Jay StansfieldShot on target
58’
Patrick RobertsShot on target
59’
Corner
63’
Jay StansfieldShot on target
65’
70’
Corner
83’
Corner
Carlos VicenteShot on target
87’
Corner
90+1’
Full-time3-0

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 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.35 1.43 1’ Alex Cochrane (Birmingham), 1-0 1’ 16’ Max Bird (Birmingham), 2-0 16’ 29’ Jay Stansfield (Birmingham), 3-0 29’ 0.0 0.5 1.0 1.5 2.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.35 1.43 1’ Alex Cochrane (Birmingham), 1-0 Cochrane 1’ 16’ Max Bird (Birmingham), 2-0 Bird 16’ 29’ Jay Stansfield (Birmingham), 3-0 Stansfield 29’
Birmingham 1.35 xGMillwall 1.43 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Millwall attacking Birmingham attacking 
22’ Lyndon Dykes (Millwall), open play, 0.26 xG, off target 12’ Kyrell Lisbie (Millwall), set piece, 0.25 xG, off target 41’ Phil Neumann (Birmingham), from a corner, 0.23 xG, blocked 83’ Josh Coburn (Millwall), from a corner, 0.23 xG, off target 24’ Jay Stansfield (Birmingham), open play, 0.16 xG, blocked 24’ Jhon Solís (Birmingham), set piece, 0.12 xG, saved 44’ Jhon Solís (Birmingham), open play, 0.12 xG, blocked 65’ Jay Stansfield (Birmingham), open play, 0.09 xG, saved 51’ Lyndon Dykes (Millwall), open play, 0.09 xG, off target 16’ Max Bird (Birmingham), open play, 0.09 xG, goal 19’ Mihailo Ivanović (Millwall), open play, 0.08 xG, blocked 35’ Max Bird (Birmingham), open play, 0.09 xG, blocked 59’ Patrick Roberts (Birmingham), open play, 0.08 xG, saved 80’ Romain Esse (Millwall), open play, 0.08 xG, off target 14’ Ethan Laird (Birmingham), open play, 0.07 xG, blocked 27’ Jake Cooper (Millwall), set piece, 0.07 xG, off target 29’ Jay Stansfield (Birmingham), open play, 0.06 xG, goal 69’ Daniel Kelly (Millwall), open play, 0.07 xG, off target 88’ Romain Esse (Millwall), open play, 0.07 xG, off target 12’ Caleb Taylor (Millwall), set piece, 0.05 xG, saved 21’ Jay Stansfield (Birmingham), open play, 0.05 xG, saved 87’ Carlos Vicente (Birmingham), open play, 0.04 xG, saved 41’ Patrick Roberts (Birmingham), from a corner, 0.04 xG, off target 83’ Jordi Osei-Tutu (Millwall), open play, 0.04 xG, blocked 83’ Daniel Kelly (Millwall), open play, 0.04 xG, blocked 57’ Jake Cooper (Millwall), set piece, 0.03 xG, saved 34’ Mihailo Ivanović (Millwall), open play, 0.03 xG, blocked 85’ Derek Mazou-Sacko (Millwall), open play, 0.03 xG, off target 43’ Jhon Solís (Birmingham), open play, 0.03 xG, off target 43’ Tomoki Iwata (Birmingham), open play, 0.02 xG, blocked 1’ Phil Neumann (Birmingham), set piece, 0.02 xG, off target 58’ Jay Stansfield (Birmingham), set piece, 0.02 xG, saved 20’ Liam Millar (Birmingham), from a corner, 0.01 xG, blocked 75’ Camiel Neghli (Millwall), open play, 0.01 xG, hit the woodwork 1’ Alex Cochrane (Birmingham), set piece, 0.01 xG, goal 22’ Lyndon Dykes (Millwall), open play, 0.26 xG, off target 12’ Kyrell Lisbie (Millwall), set piece, 0.25 xG, off target 41’ Phil Neumann (Birmingham), from a corner, 0.23 xG, blocked 83’ Josh Coburn (Millwall), from a corner, 0.23 xG, off target 24’ Jay Stansfield (Birmingham), open play, 0.16 xG, blocked 24’ Jhon Solís (Birmingham), set piece, 0.12 xG, saved 44’ Jhon Solís (Birmingham), open play, 0.12 xG, blocked 65’ Jay Stansfield (Birmingham), open play, 0.09 xG, saved 51’ Lyndon Dykes (Millwall), open play, 0.09 xG, off target 16’ Max Bird (Birmingham), open play, 0.09 xG, goal 35’ Max Bird (Birmingham), open play, 0.09 xG, blocked 19’ Mihailo Ivanović (Millwall), open play, 0.08 xG, blocked 59’ Patrick Roberts (Birmingham), open play, 0.08 xG, saved 80’ Romain Esse (Millwall), open play, 0.08 xG, off target 14’ Ethan Laird (Birmingham), open play, 0.07 xG, blocked 27’ Jake Cooper (Millwall), set piece, 0.07 xG, off target 29’ Jay Stansfield (Birmingham), open play, 0.06 xG, goal 69’ Daniel Kelly (Millwall), open play, 0.07 xG, off target 88’ Romain Esse (Millwall), open play, 0.07 xG, off target 12’ Caleb Taylor (Millwall), set piece, 0.05 xG, saved 21’ Jay Stansfield (Birmingham), open play, 0.05 xG, saved 87’ Carlos Vicente (Birmingham), open play, 0.04 xG, saved 41’ Patrick Roberts (Birmingham), from a corner, 0.04 xG, off target 83’ Jordi Osei-Tutu (Millwall), open play, 0.04 xG, blocked 83’ Daniel Kelly (Millwall), open play, 0.04 xG, blocked 34’ Mihailo Ivanović (Millwall), open play, 0.03 xG, blocked 57’ Jake Cooper (Millwall), set piece, 0.03 xG, saved 85’ Derek Mazou-Sacko (Millwall), open play, 0.03 xG, off target 43’ Jhon Solís (Birmingham), open play, 0.03 xG, off target 43’ Tomoki Iwata (Birmingham), open play, 0.02 xG, blocked 58’ Jay Stansfield (Birmingham), set piece, 0.02 xG, saved 1’ Phil Neumann (Birmingham), set piece, 0.02 xG, off target 20’ Liam Millar (Birmingham), from a corner, 0.01 xG, blocked 1’ Alex Cochrane (Birmingham), set piece, 0.01 xG, goal 75’ Camiel Neghli (Millwall), open play, 0.01 xG, hit the woodwork
Size shows xG Goal On target Off target or blocked

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

Lineups

Birmingham 4-2-3-1 Starting XI
Allsop
Cochrane
Neumann
Klarer
Laird 73’
Iwata
Solís
Bird 80’
Stansfield 86’
Roberts 73’
Millar 73’
Millwall 4-4-2 Starting XI
Crocombe
Sturge 46’
Taylor
Cooper
Osei-Tutu
Lisbie 71’
Mazou-Sacko 86’
Cundle
Neghli
Dykes 71’
Ivanović 46’

Player stats

Goalkeeper1 player
90′ 3 0 43 – – – – –
Defenders5 players
Ethan Laird Taken off
73′ – – – 3 2 29 – – – –
90′ 3 – 3 7 4 46 1 – – –
90′ 1 2 1 14 12 65 – – – –
90′ – 1 – 2 1 45 2 1 –
Bright Osayi-Samuel Came on as a substitute
17′ 2 – – 3 1 12 – – – –
Midfielders9 players
90′ – – 44 – – 1 1 2 1 – –
90′ – 1 65 2 – 1 – 5 – 1 –
Patrick Roberts Taken off
73′ – – 39 2 – – – 3 – 3 –
Jay Stansfield Taken off
86′ 1 – 11 – – 1 – 3 5 1 –
Liam Millar Taken off
73′ – – 29 2 – – – 2 1 1 –
Max Bird Taken off
80′ 1 1 26 2 – – 1 1 – 1 –
Carlos Vicente Came on as a substitute
17′ – – 11 – – 2 – 2 1 – –
Demarai Gray Came on as a substitute
17′ – – 7 – – – – 3 – – –
Taylor Gardner-Hickman Came on as a substitute
10′ – – 5 1 – – – – 1 – –
Forwards1 player
Luis Vázquez Came on as a substitute
8′ – – – – – – – – – 2 –
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.

Before kick-off

Birmingham win 49% Avg odds 1.92 Our estimate 48%
Draw 26% Avg odds 3.58 Our estimate 26%
Millwall win 25% Avg odds 3.69 Our estimate 26%

Chances implied by the average closing odds, with the bookmaker margin removed. Our estimate is the figure from before kick-off. How our figures work.

Form going into the game

Last five 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 and odds from football-data.co.uk.