Middlesbrough vs Cardiff

17 October 2026 · Championship · 2026/27 · Referee Tom Nield

Full time 2 – 2

Half-time: 0–2

  • Tommy Conway 58’
  • Will Lankshear 61’
  • Jack Moylan 22’
  • Ollie Tanner 45+1’

Match summary

Middlesbrough and Cardiff drew 2-2. Cardiff led 2-0 at half-time.

In the first half, Jack Moylan put Cardiff ahead in the 22nd minute and Ollie Tanner made it 0-2 in first-half stoppage time. In the second half, Tommy Conway pulled one back to make it 1-2 in the 58th minute and Will Lankshear equalised in the 61st minute.

Middlesbrough had the better of the chances, with 2.76 expected goals (xG) from 36 shots to Cardiff's 0.83 from 7. Cardiff had a player sent off.

Match stats

57% Possession 43%
36 Shots 7
12 Shots on target 3
11 Corners 4
85 Attacks 85
60 Dangerous attacks 32
492 Passes 380
83.3% Pass accuracy 80.8%
20 Tackles 17
9 Fouls 10
0 Yellow cards 2
0 Red cards 1
3 Offsides 4

Key events

Middlesbrough Cardiff
Kick-off
Corner
2’
Tommy ConwayShot on target
3’
14’
Corner
Amario Cozier-DuberryShot on target
18’
Corner
18’
19’
B. Barry-MurphyManagerArgument
22’
Jack MoylanRight foot shot0-1 (Cardiff)
25’
Corner
27’
Amario Cozier-DuberryShot on target
29’
Kyle JosephShot on target
34’
Amario Cozier-DuberryShot on target
34’
40’
Corner
45+1’
Ollie TannerLeft foot shot0-2 (Cardiff)
Half-time0-2
Second half underway
47’
Corner
48’
Corner
Aidan MorrisShot on target
55’
Tommy ConwayRight foot shot1-2 (Middlesbrough)
58’
Will LankshearLeft foot shot2-2 (Middlesbrough)
61’
Corner
64’
68’
Jack MoylanShot on target
Corner
76’
Corner
77’
Sebastian BerhalterShot on target
81’
Corner
81’
Corner
81’
83’
Corner
87’
88’
Sebastian BerhalterShot on target
88’
Corner
88’
Corner
90+4’
Full-time2-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 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.76 0.83 22’ Jack Moylan (Cardiff), 0-1 22’ 45+1’ Ollie Tanner (Cardiff), 0-2 45+1’ 58’ Tommy Conway (Middlesbrough), 1-2 58’ 61’ Will Lankshear (Middlesbrough), 2-2 61’ 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 2.76 0.83 22’ Jack Moylan (Cardiff), 0-1 Moylan 22’ 45+1’ Ollie Tanner (Cardiff), 0-2 Tanner 45+1’ 58’ Tommy Conway (Middlesbrough), 1-2 Conway 58’ 61’ Will Lankshear (Middlesbrough), 2-2 Lankshear 61’
Middlesbrough 2.76 xGCardiff 0.83 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Cardiff attacking Middlesbrough attacking 
44’ Kyle Joseph (Middlesbrough), open play, 0.36 xG, blocked 58’ Tommy Conway (Middlesbrough), open play, 0.36 xG, goal 40’ Gabriel Osho (Cardiff), from a corner, 0.33 xG, off target 18’ Amario Cozier-Duberry (Middlesbrough), open play, 0.21 xG, saved 68’ Jack Moylan (Cardiff), open play, 0.21 xG, saved 53’ Will Lankshear (Middlesbrough), open play, 0.16 xG, off target 32’ Amario Cozier-Duberry (Middlesbrough), open play, 0.13 xG, blocked 63’ Neto Borges (Middlesbrough), open play, 0.13 xG, off target 4’ Neto Borges (Middlesbrough), open play, 0.11 xG, off target 7’ Jack Moylan (Cardiff), open play, 0.11 xG, off target 19’ Neto Borges (Middlesbrough), open play, 0.10 xG, off target 34’ Kyle Joseph (Middlesbrough), open play, 0.10 xG, saved 76’ Ashley Phillips (Middlesbrough), from a corner, 0.10 xG, off target 55’ Aidan Morris (Middlesbrough), open play, 0.09 xG, saved 22’ Jack Moylan (Cardiff), open play, 0.08 xG, goal 90+3’ Jeremy Sarmiento (Middlesbrough), open play, 0.08 xG, off target 65’ Neto Borges (Middlesbrough), from a corner, 0.07 xG, off target 36’ Amario Cozier-Duberry (Middlesbrough), open play, 0.07 xG, blocked 47’ Callum Brittain (Middlesbrough), open play, 0.06 xG, blocked 4’ Amario Cozier-Duberry (Middlesbrough), open play, 0.05 xG, blocked 13’ Cian Ashford (Cardiff), open play, 0.05 xG, blocked 80’ Will Lankshear (Middlesbrough), open play, 0.05 xG, blocked 45’ Aidan Morris (Middlesbrough), open play, 0.05 xG, blocked 90’ Sebastian Berhalter (Middlesbrough), direct free kick, 0.04 xG, off target 17’ Aidan Morris (Middlesbrough), open play, 0.04 xG, blocked 81’ Sebastian Berhalter (Middlesbrough), open play, 0.04 xG, saved 44’ Amario Cozier-Duberry (Middlesbrough), open play, 0.04 xG, blocked 51’ Amario Cozier-Duberry (Middlesbrough), open play, 0.04 xG, off target 55’ Aidan Morris (Middlesbrough), open play, 0.03 xG, blocked 61’ Will Lankshear (Middlesbrough), open play, 0.03 xG, goal 37’ Neto Borges (Middlesbrough), open play, 0.03 xG, off target 46’ Ollie Tanner (Cardiff), open play, 0.03 xG, goal 88’ Sebastian Berhalter (Middlesbrough), from a corner, 0.03 xG, saved 90+5’ Adilson Malanda (Middlesbrough), from a corner, 0.03 xG, blocked 3’ Ollie Tanner (Cardiff), open play, 0.02 xG, off target 3’ Tommy Conway (Middlesbrough), from a corner, 0.02 xG, saved 29’ Amario Cozier-Duberry (Middlesbrough), open play, 0.02 xG, saved 52’ Tommy Conway (Middlesbrough), open play, 0.03 xG, off target 34’ Amario Cozier-Duberry (Middlesbrough), open play, 0.02 xG, saved 20’ Kyle Joseph (Middlesbrough), set piece, 0.02 xG, blocked 88’ Max Arfsten (Middlesbrough), from a corner, 0.02 xG, blocked 77’ Aidan Morris (Middlesbrough), open play, 0.02 xG, blocked 90+4’ Adilson Malanda (Middlesbrough), from a corner, 0.01 xG, blocked 44’ Kyle Joseph (Middlesbrough), open play, 0.36 xG, blocked 58’ Tommy Conway (Middlesbrough), open play, 0.36 xG, goal 40’ Gabriel Osho (Cardiff), from a corner, 0.33 xG, off target 18’ Amario Cozier-Duberry (Middlesbrough), open play, 0.21 xG, saved 68’ Jack Moylan (Cardiff), open play, 0.21 xG, saved 53’ Will Lankshear (Middlesbrough), open play, 0.16 xG, off target 32’ Amario Cozier-Duberry (Middlesbrough), open play, 0.13 xG, blocked 63’ Neto Borges (Middlesbrough), open play, 0.13 xG, off target 4’ Neto Borges (Middlesbrough), open play, 0.11 xG, off target 7’ Jack Moylan (Cardiff), open play, 0.11 xG, off target 34’ Kyle Joseph (Middlesbrough), open play, 0.10 xG, saved 19’ Neto Borges (Middlesbrough), open play, 0.10 xG, off target 76’ Ashley Phillips (Middlesbrough), from a corner, 0.10 xG, off target 22’ Jack Moylan (Cardiff), open play, 0.08 xG, goal 55’ Aidan Morris (Middlesbrough), open play, 0.09 xG, saved 90+3’ Jeremy Sarmiento (Middlesbrough), open play, 0.08 xG, off target 36’ Amario Cozier-Duberry (Middlesbrough), open play, 0.07 xG, blocked 65’ Neto Borges (Middlesbrough), from a corner, 0.07 xG, off target 47’ Callum Brittain (Middlesbrough), open play, 0.06 xG, blocked 4’ Amario Cozier-Duberry (Middlesbrough), open play, 0.05 xG, blocked 13’ Cian Ashford (Cardiff), open play, 0.05 xG, blocked 45’ Aidan Morris (Middlesbrough), open play, 0.05 xG, blocked 80’ Will Lankshear (Middlesbrough), open play, 0.05 xG, blocked 90’ Sebastian Berhalter (Middlesbrough), direct free kick, 0.04 xG, off target 17’ Aidan Morris (Middlesbrough), open play, 0.04 xG, blocked 44’ Amario Cozier-Duberry (Middlesbrough), open play, 0.04 xG, blocked 51’ Amario Cozier-Duberry (Middlesbrough), open play, 0.04 xG, off target 81’ Sebastian Berhalter (Middlesbrough), open play, 0.04 xG, saved 55’ Aidan Morris (Middlesbrough), open play, 0.03 xG, blocked 37’ Neto Borges (Middlesbrough), open play, 0.03 xG, off target 61’ Will Lankshear (Middlesbrough), open play, 0.03 xG, goal 90+5’ Adilson Malanda (Middlesbrough), from a corner, 0.03 xG, blocked 46’ Ollie Tanner (Cardiff), open play, 0.03 xG, goal 52’ Tommy Conway (Middlesbrough), open play, 0.03 xG, off target 88’ Sebastian Berhalter (Middlesbrough), from a corner, 0.03 xG, saved 3’ Ollie Tanner (Cardiff), open play, 0.02 xG, off target 3’ Tommy Conway (Middlesbrough), from a corner, 0.02 xG, saved 29’ Amario Cozier-Duberry (Middlesbrough), open play, 0.02 xG, saved 34’ Amario Cozier-Duberry (Middlesbrough), open play, 0.02 xG, saved 88’ Max Arfsten (Middlesbrough), from a corner, 0.02 xG, blocked 20’ Kyle Joseph (Middlesbrough), set piece, 0.02 xG, blocked 77’ Aidan Morris (Middlesbrough), open play, 0.02 xG, blocked 90+4’ Adilson Malanda (Middlesbrough), from a corner, 0.01 xG, blocked
Size shows xG Goal On target Off target or blocked

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

Lineups

Middlesbrough 4-2-3-1 Starting XI
Vitek
Brittain
Ayling 46’
Phillips
Borges 89’
Morris
Malanda
McGree 79’
Cozier-Duberry 74’
Conway
Joseph 46’
Cardiff 4-1-4-1 Starting XI
Trott
Bagan
Bielik
Osho
Kpakio 73’
Robertson
Willock 63’
Colwill 46’
Tanner 79’
Ashford
Moylan

Player stats

Goalkeeper1 player
90′ 1 2 23 1 – – – –
Defenders4 players
90′ 3 1 – 6 – 55 – – 1 –
Luke Ayling Taken off
45′ 2 1 – 4 2 35 – – – –
90′ – 3 – 4 4 49 1 – – –
Neto Borges Taken off
89′ 2 – – 6 3 38 1 – – –
Midfielders9 players
90′ – – 61 – – 1 – 2 1 1 –
90′ – – 86 3 – 2 1 7 1 – –
Amario Cozier-Duberry Taken off
74′ – 1 27 2 – 2 1 4 – 1 –
Riley McGree Taken off
79′ – – 28 – – 2 1 4 1 1 –
90′ 1 – 37 4 – 1 1 7 – 2 –
Sebastian Berhalter Came on as a substitute
45′ – – 24 4 – 4 – 5 1 1 –
Max Arfsten Came on as a substitute
16′ – – 9 – – – – – 1 – –
Myles Peart-Harris Came on as a substitute
11′ – – 3 – – – – – 1 – –
Jeremy Sarmiento Came on as a substitute
1′ – – 1 – – – – – – – –
Forwards2 players
Kyle Joseph Taken off
45′ – – 3 2 0.48 – 2 4 1 7 –
Will Lankshear Came on as a substitute
45′ 1 – 3 1 0.23 – 1 1 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.

Before kick-off

Middlesbrough win 64% Avg odds 1.48
Draw 19% Avg odds 4.90
Cardiff win 17% Avg odds 5.47

Chances implied by the average closing odds, with the bookmaker margin removed.

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.