Cardiff vs West Ham

4 November 2026 · Championship · 2026/27 · Referee Edward Duckworth

Full time 3 – 3

Half-time: 3–0

  • Jack Moylan 11’, 37’ (pen), 39’
  • Divine Mukasa 58’
  • Arne Engels 65’
  • Max Kilman 82’

Match summary

The points were shared as Cardiff and West Ham drew 3-3. Cardiff led 3-0 at half-time.

In the first half, Jack Moylan put Cardiff ahead in the 11th minute, Moylan made it 2-0 from the penalty spot in the 37th minute, and Moylan made it 3-0 with a header in the 39th minute. In the second half, Divine Mukasa pulled one back to make it 3-1 in the 58th minute, Arne Engels made it 3-2 in the 65th minute, and Max Kilman equalised in the 82nd minute.

West Ham had the better of the chances, with 2.62 expected goals (xG) from 18 shots to Cardiff's 1.15 from 7.

Cardiff hosted West Ham in the Championship, with the visitors dominating the territory and overall statistics despite the final scoreline. West Ham managed 18 shots against Cardiff's 7, hitting 10 on target compared to the hosts' 4. The away side controlled 56 percent of the possession, completed 484 passes with an 84.3 percent accuracy, and generated an expected goals figure of 2.62. In contrast, Cardiff recorded an expected goals total of 1.15 from 388 passes. The match saw 20 fouls committed overall, with Cardiff conceding 9 and West Ham 11. West Ham accumulated 3 yellow cards throughout the fixture, while Cardiff received 0.

The first half belonged entirely to Cardiff, who established a commanding lead through 3 goals scored before the interval. Jack Moylan opened the scoring in the 11th minute, before Max Kilman and Soungoutou Magassa received yellow cards for West Ham in quick succession. Moylan added a penalty goal in the 37th minute and completed his hat-trick with another goal in the 39th minute. Following multiple substitutions by both managers at the start of the second half, West Ham mounted a comeback. Divine Mukasa scored in the 58th minute, Arne Engels followed with a goal in the 65th minute, and Max Kilman secured the draw by scoring in the 82nd minute. Joël Veltman was shown a yellow card for a foul in the 84th minute.

Match stats

44% Possession 56%
7 Shots 18
4 Shots on target 10
4 Corners 6
82 Attacks 94
43 Dangerous attacks 52
388 Passes 484
80.7% Pass accuracy 84.3%
10 Tackles 17
9 Fouls 11
0 Yellow cards 3
1 Offsides 1

Key events

Cardiff West Ham
Kick-off
9’
Valentín CastellanosShot on target
Jack MoylanRight foot shot1-0 (Cardiff)
11’
23’
25’
Jack MoylanPenalty2-0 (Cardiff)
37’
Jack MoylanHeader3-0 (Cardiff)
39’
Half-time3-0
46’
47’
Valentín CastellanosShot on target
Second half underway
49’
Joël PiroeShot on target
Yousef SalechShot on target
52’
58’
Divine MukasaLeft foot shot3-1 (West Ham)
65’
Arne EngelsLeft foot shot3-2 (West Ham)
67’
Jarrod BowenShot on target
77’
Mohamadou KantéShot on target
82’
Max KilmanLeft foot shot3-3 (West Ham)
84’
89’
Edvin AustbøShot on target
90+3’
Tomáš SoučekShot on target
Full-time3-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 1.15 2.62 11’ Jack Moylan (Cardiff), 1-0 11’ 37’ Jack Moylan (Cardiff), 2-0 37’ 39’ Jack Moylan (Cardiff), 3-0 39’ 58’ Divine Mukasa (West Ham), 3-1 58’ 65’ Arne Engels (West Ham), 3-2 65’ 82’ Max Kilman (West Ham), 3-3 82’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.15 2.62 11’ Jack Moylan (Cardiff), 1-0 Moylan 11’ 37’ Jack Moylan (Cardiff), 2-0 Moylan 37’ 39’ Jack Moylan (Cardiff), 3-0 Moylan 39’ 58’ Divine Mukasa (West Ham), 3-1 Mukasa 58’ 65’ Arne Engels (West Ham), 3-2 Engels 65’ 82’ Max Kilman (West Ham), 3-3 Kilman 82’
Cardiff 1.15 xGWest Ham 2.62 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 West Ham attacking Cardiff attacking 
37’ Jack Moylan (Cardiff), penalty, 0.79 xG, goal 82’ Max Kilman (West Ham), open play, 0.58 xG, goal 58’ Divine Mukasa (West Ham), open play, 0.31 xG, goal 65’ Arne Engels (West Ham), open play, 0.31 xG, goal 77’ Mohamadou Kanté (West Ham), open play, 0.28 xG, saved 81’ Konstantinos Mavropanos (West Ham), from a corner, 0.18 xG, blocked 67’ Jarrod Bowen (West Ham), open play, 0.18 xG, saved 49’ Joël Piroe (West Ham), open play, 0.17 xG, saved 39’ Jack Moylan (Cardiff), from a corner, 0.16 xG, goal 9’ Valentín Castellanos (West Ham), from a corner, 0.14 xG, saved 90+3’ Tomáš Souček (West Ham), open play, 0.08 xG, saved 34’ William Fish (Cardiff), from a corner, 0.07 xG, off target 48’ Konstantinos Mavropanos (West Ham), open play, 0.08 xG, off target 64’ Manor Solomon (West Ham), open play, 0.07 xG, blocked 47’ Valentín Castellanos (West Ham), open play, 0.06 xG, saved 11’ Jack Moylan (Cardiff), open play, 0.05 xG, goal 9’ Jarrod Bowen (West Ham), from a corner, 0.04 xG, blocked 90+1’ Ezra Mayers (West Ham), open play, 0.04 xG, off target 52’ Yousef Salech (Cardiff), open play, 0.04 xG, saved 54’ Manor Solomon (West Ham), from a corner, 0.02 xG, blocked 71’ Edvin Austbø (West Ham), open play, 0.03 xG, off target 63’ Joël Piroe (West Ham), open play, 0.02 xG, off target 65’ Perry Ng (Cardiff), open play, 0.02 xG, off target 89’ Edvin Austbø (West Ham), open play, 0.02 xG, saved 67’ Ollie Tanner (Cardiff), open play, 0.02 xG, blocked 37’ Jack Moylan (Cardiff), penalty, 0.79 xG, goal 82’ Max Kilman (West Ham), open play, 0.58 xG, goal 58’ Divine Mukasa (West Ham), open play, 0.31 xG, goal 65’ Arne Engels (West Ham), open play, 0.31 xG, goal 77’ Mohamadou Kanté (West Ham), open play, 0.28 xG, saved 81’ Konstantinos Mavropanos (West Ham), from a corner, 0.18 xG, blocked 67’ Jarrod Bowen (West Ham), open play, 0.18 xG, saved 49’ Joël Piroe (West Ham), open play, 0.17 xG, saved 39’ Jack Moylan (Cardiff), from a corner, 0.16 xG, goal 9’ Valentín Castellanos (West Ham), from a corner, 0.14 xG, saved 90+3’ Tomáš Souček (West Ham), open play, 0.08 xG, saved 48’ Konstantinos Mavropanos (West Ham), open play, 0.08 xG, off target 34’ William Fish (Cardiff), from a corner, 0.07 xG, off target 64’ Manor Solomon (West Ham), open play, 0.07 xG, blocked 47’ Valentín Castellanos (West Ham), open play, 0.06 xG, saved 11’ Jack Moylan (Cardiff), open play, 0.05 xG, goal 9’ Jarrod Bowen (West Ham), from a corner, 0.04 xG, blocked 90+1’ Ezra Mayers (West Ham), open play, 0.04 xG, off target 52’ Yousef Salech (Cardiff), open play, 0.04 xG, saved 71’ Edvin Austbø (West Ham), open play, 0.03 xG, off target 54’ Manor Solomon (West Ham), from a corner, 0.02 xG, blocked 63’ Joël Piroe (West Ham), open play, 0.02 xG, off target 65’ Perry Ng (Cardiff), open play, 0.02 xG, off target 89’ Edvin Austbø (West Ham), open play, 0.02 xG, saved 67’ Ollie Tanner (Cardiff), open play, 0.02 xG, blocked
Size shows xG Goal On target Off target or blocked

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

Lineups

Cardiff 4-1-4-1 Starting XI
Trott
Bagan
Scanlon 72’
Fish
Ng 72’
Robertson
Willock 56’
Moylan 3
Colwill 55’
Tanner
Salech
West Ham 4-4-1-1 Starting XI
Hermansen
Mavropanos
Kilman
Morato 46’
Veltman 88’
Engels
Magassa 46’
Mukasa
Bowen
Solomon 69’
Castellanos 46’

Player stats

Goalkeeper1 player
90′ 7 3 58 1 – – – –
Defenders5 players
Perry Ng Taken off
72′ 1 1 1 2 1 38 – – – –
90′ 1 – – 2 1 51 2 – – –
90′ 2 – 1 4 – 46 – – 1 –
Calum Scanlon Taken off
72′ – – – 4 3 28 1 – – –
Ronan Kpakio Came on as a substitute
18′ – – – – – 5 1 – – –
Midfielders8 players
90′ – 1 40 2 – – 2 2 – 1 –
90′ – – 30 1 – 2 1 2 – – –
90′ 3 – 24 1 – 1 1 6 3 4 –
Rubin Colwill Taken off
55′ – – 20 – – – – 3 1 2 –
Chris Willock Taken off
56′ – – 14 – – 1 1 1 – – –
Joel Colwill Came on as a substitute
35′ – – 9 1 – – – – – – –
Cian Ashford Came on as a substitute
34′ – – 5 – – 1 – 2 – – –
David Turnbull Came on as a substitute
18′ – – 7 – – 1 – 3 – 1 –
Forwards1 player
90′ – – 1 1 0.04 – – 2 1 13 –
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

Cardiff win 28% Avg odds 3.33 Our estimate 47%
Draw 23% Avg odds 3.99 Our estimate 23%
West Ham win 49% Avg odds 1.93 Our estimate 30%

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.