Millwall vs Portsmouth

5 April 2025 · Championship · 2024/25 · Referee B Toner

Full time 2 – 1

Half-time: 0–0

  • Mihailo Ivanović 57’, 87’
  • Andre Dozzell 80’

Match summary

Millwall beat Portsmouth 2-1, with a late winner. It was goalless at half-time.

Mihailo Ivanović put Millwall ahead with a header in the 57th minute, Andre Dozzell equalised in the 80th minute, and Ivanović won it with a header in the 87th minute.

The chances backed that up: Millwall created 1.30 expected goals (xG) from 14 shots to Portsmouth's 0.60 from 6.

Match stats

Millwall Portsmouth
14 Shots 6
3 Shots on Target 3
11 Corners 4
0 Yellow Cards 4
0 Red Cards 0
1.30 xG 0.63
1.30 Non-penalty xG 0.63

Key events

Millwall Portsmouth
Kick-off
Half-time0-0
Mihailo Ivanović1-0 (Millwall)
57’
80’
Andre Dozzell1-1 (Portsmouth)
Mihailo Ivanović2-1 (Millwall)
87’
Full-time2-1

Bookings

Card times are not on file for this game, so they are listed without a minute.

Portsmouth
  • Matt Ritchie
  • Terry Devlin
  • Colby Bishop
  • Marlon Pack

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 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.30 0.60 57’ Mihailo Ivanović (Millwall), 1-0 57’ 80’ Andre Dozzell (Portsmouth), 1-1 80’ 87’ Mihailo Ivanović (Millwall), 2-1 87’ 0.0 0.5 1.0 1.5 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 1.30 0.60 57’ Mihailo Ivanović (Millwall), 1-0 Ivanović 57’ 80’ Andre Dozzell (Portsmouth), 1-1 Dozzell 80’ 87’ Mihailo Ivanović (Millwall), 2-1 Ivanović 87’
Millwall 1.30 xGPortsmouth 0.60 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 Portsmouth attacking Millwall attacking 
80’ Andre Dozzell (Portsmouth), open play, 0.17 xG, goal 87’ Mihailo Ivanović (Millwall), from a corner, 0.18 xG, goal 38’ Colby Bishop (Portsmouth), open play, 0.17 xG, saved 22’ Jake Cooper (Millwall), from a corner, 0.15 xG, off target 90+5’ Macaulay Langstaff (Millwall), open play, 0.15 xG, saved 15’ Japhet Tanganga (Millwall), from a corner, 0.14 xG, off target 57’ Mihailo Ivanović (Millwall), from a corner, 0.14 xG, goal 49’ Aaron Connolly (Millwall), set piece, 0.12 xG, blocked 65’ Matt Ritchie (Portsmouth), set piece, 0.12 xG, hit the woodwork 70’ Mihailo Ivanović (Millwall), set piece, 0.12 xG, blocked 90+3’ Aidomo Emakhu (Millwall), open play, 0.10 xG, blocked 80’ Josh Murphy (Portsmouth), open play, 0.10 xG, blocked 5’ George Saville (Millwall), from a corner, 0.04 xG, off target 70’ Jake Cooper (Millwall), from a corner, 0.04 xG, off target 31’ George Saville (Millwall), set piece, 0.04 xG, blocked 33’ Josh Coburn (Millwall), open play, 0.03 xG, blocked 31’ Aaron Connolly (Millwall), open play, 0.02 xG, blocked 62’ Matt Ritchie (Portsmouth), open play, 0.02 xG, saved 77’ Christian Saydee (Portsmouth), set piece, 0.02 xG, blocked 71’ Tristan Crama (Millwall), from a corner, 0.01 xG, off target 87’ Mihailo Ivanović (Millwall), from a corner, 0.18 xG, goal 80’ Andre Dozzell (Portsmouth), open play, 0.17 xG, goal 38’ Colby Bishop (Portsmouth), open play, 0.17 xG, saved 22’ Jake Cooper (Millwall), from a corner, 0.15 xG, off target 90+5’ Macaulay Langstaff (Millwall), open play, 0.15 xG, saved 57’ Mihailo Ivanović (Millwall), from a corner, 0.14 xG, goal 15’ Japhet Tanganga (Millwall), from a corner, 0.14 xG, off target 49’ Aaron Connolly (Millwall), set piece, 0.12 xG, blocked 70’ Mihailo Ivanović (Millwall), set piece, 0.12 xG, blocked 65’ Matt Ritchie (Portsmouth), set piece, 0.12 xG, hit the woodwork 80’ Josh Murphy (Portsmouth), open play, 0.10 xG, blocked 90+3’ Aidomo Emakhu (Millwall), open play, 0.10 xG, blocked 5’ George Saville (Millwall), from a corner, 0.04 xG, off target 70’ Jake Cooper (Millwall), from a corner, 0.04 xG, off target 31’ George Saville (Millwall), set piece, 0.04 xG, blocked 33’ Josh Coburn (Millwall), open play, 0.03 xG, blocked 31’ Aaron Connolly (Millwall), open play, 0.02 xG, blocked 62’ Matt Ritchie (Portsmouth), open play, 0.02 xG, saved 77’ Christian Saydee (Portsmouth), set piece, 0.02 xG, blocked 71’ Tristan Crama (Millwall), from a corner, 0.01 xG, off target
Size shows xG Goal On target Off target or blocked

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

Player stats

Players15 players
90′ – – – – – – –
90′ – – 1 0.01 – – –
Japhet Tanganga Taken off
43′ – – 1 0.14 – – –
90′ – – 2 0.20 – – –
Joe Bryan
90′ – – – – – – –
George Honeyman
90′ – – – – – – –
90′ – – – – – – –
George Saville Taken off
82′ – – 2 0.08 – – –
Aaron Connolly Taken off
82′ – – 2 0.14 – – –
Josh Coburn Taken off
82′ – – 1 0.03 – – –
90′ 2 – 3 0.44 – – –
Ryan Leonard Came on as a substitute
47′ – – – – – – –
Billy Mitchell Came on as a substitute
8′ – – – – – – –
Macaulay Langstaff Came on as a substitute
8′ – – 1 0.15 – – –
Aidomo Emakhu Came on as a substitute
8′ – – 1 0.10 – – –
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

Millwall win 41% Avg odds 2.31
Draw 31% Avg odds 3.01
Portsmouth win 28% Avg odds 3.43

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. Referee data before 2025/26 from the Transfermarkt datasets project.