Match summary
Cardiff beat Millwall 1-0. It was goalless at half-time.
Dimitris Goutas put Cardiff ahead with a header in the 78th minute.
Millwall can feel hard done by, creating 1.45 expected goals (xG) from 10 shots to Cardiff's 0.83 from 7.
9 December 2023 · Championship · 2023/24 · Referee Andrew Kitchen
Half-time: 0–0
Cardiff beat Millwall 1-0. It was goalless at half-time.
Dimitris Goutas put Cardiff ahead with a header in the 78th minute.
Millwall can feel hard done by, creating 1.45 expected goals (xG) from 10 shots to Cardiff's 0.83 from 7.
Card times are not on file for this game, so they are listed without a minute.
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.
Tap a goal for the scorer and score.
Every shot and where it was taken from.
Hover or tap a shot for the player, minute and xG.
| 90′ | – | – | – | – | – | – | – | ||
| 90′ | – | – | – | – | – | – | – | ||
| 90′ | 1 | – | 1 | 0.13 | – | – | – | ||
| 90′ | – | – | – | – | – | – | – | ||
Jamilu Collins
|
90′ | – | – | 1 | 0.02 | – | – | – | |
Ryan Wintle
Taken off
|
70′ | – | – | – | – | – | – | – | |
Manolis Siopis
Taken off
|
89′ | – | – | – | – | – | – | – | |
Josh Bowler
Taken off
|
70′ | – | – | – | – | – | – | – | |
Callum Robinson
Taken off
|
46′ | – | – | – | – | – | – | – | |
| 90′ | – | – | 1 | 0.02 | – | – | – | ||
Ike Ugbo
Taken off
|
46′ | – | – | – | – | – | – | – | |
Rubin Colwill
Came on as a substitute
|
44′ | – | – | 1 | 0.02 | – | – | – | |
Yakou Méïté
Came on as a substitute
|
44′ | – | – | 2 | 0.38 | – | – | ||
Joe Ralls
Came on as a substitute
|
20′ | – | – | – | – | – | – | – | |
Kion Etete
Came on as a substitute
|
20′ | – | – | 1 | 0.27 | – | – | – | |
Ebou Adams
Came on as a substitute
|
1′ | – | – | – | – | – | – | – |
Matija Šarkić
|
90′ | – | – | – | – | – | – | – | |
|---|---|---|---|---|---|---|---|---|---|
| 90′ | – | – | 1 | 0.73 | – | – | |||
Shaun Hutchinson
|
90′ | – | – | – | – | – | – | ||
Wes Harding
|
90′ | – | – | – | – | – | – | – | |
Murray Wallace
|
90′ | – | – | – | – | – | – | – | |
| 90′ | – | – | 1 | 0.02 | – | – | – | ||
Billy Mitchell
|
90′ | – | – | – | – | – | – | – | |
Allan Campbell
|
90′ | – | – | 1 | 0.07 | – | – | – | |
Ryan Longman
Taken off
|
82′ | – | – | – | – | – | – | – | |
Kevin Nisbet
Taken off
|
70′ | – | – | 2 | 0.30 | – | – | – | |
Zian Flemming
Taken off
|
70′ | – | – | 2 | 0.10 | – | – | – | |
Duncan Watmore
Came on as a substitute
|
20′ | – | – | 1 | 0.09 | – | – | – | |
Tom Bradshaw
Came on as a substitute
|
20′ | – | – | – | – | – | – | – | |
Aidomo Emakhu
Came on as a substitute
|
8′ | – | – | 2 | 0.14 | – | – | – |
Every player who took the pitch, starters first and then substitutes. A dash means none. xG and xA are expected goals and assists.
Chances implied by the average closing odds, with the bookmaker margin removed.
Shots, expected goals, timeline, lineups, team and player statistics from Bzzoiro Sports Data (sports.bzzoiro.com). Results and odds from football-data.co.uk. Referee data before 2025/26 from the Transfermarkt datasets project.