Roma vs AC Milan

1 September 2023 · Serie A · 2023/24 · Referee Antonio Rapuano

Full time 1 – 2

Half-time: 0–1

  • Leonardo Spinazzola 90+2’
  • Olivier Giroud 9’ (pen)
  • Rafael Leão 48’

Match summary

AC Milan beat Roma 2-1 on the road. AC Milan led 1-0 at half-time.

Olivier Giroud put AC Milan ahead from the penalty spot in the 9th minute, Rafael Leão made it 0-2 in the 48th minute, set up by Davide Calabria, and Leonardo Spinazzola pulled one back to make it 1-2 in stoppage time, set up by Edoardo Bove.

The chances backed that up: AC Milan created 1.63 expected goals (xG) from 9 shots to Roma's 0.41 from 13. AC Milan had a player sent off.

Match stats

Roma AC Milan
13 Shots 9
2 Shots on Target 4
3 Corners 5
2 Yellow Cards 4
0 Red Cards 1
0.41 xG 1.63
0.41 Non-penalty xG 0.87
5 Deep Completions 6

Key events

Roma AC Milan
Kick-off
9’
Olivier Giroud
Penalty
0-1 (AC Milan)
Half-time0-1
48’
Rafael Leão
Assist: Davide Calabria
0-2 (AC Milan)
Leonardo Spinazzola
Assist: Edoardo Bove
1-2 (Roma)
90+2’
Full-time1-2

Bookings

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

Roma
  • Leandro Paredes
  • Romelu Lukaku
AC Milan
  • Fikayo Tomori
  • Ruben Loftus-Cheek
  • Noah Okafor

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 0.41 1.63 9’ Olivier Giroud (AC Milan), 0-1 9’ 48’ Rafael Leão (AC Milan), 0-2 48’ 90+2’ Leonardo Spinazzola (Roma), 1-2 90+2’ 0.0 0.5 1.0 1.5 2.0 0’ 15’ 30’ 45’ 60’ 75’ 90’ HT 0.41 1.63 9’ Olivier Giroud (AC Milan), 0-1 Giroud 9’ 48’ Rafael Leão (AC Milan), 0-2 Leão 48’ 90+2’ Leonardo Spinazzola (Roma), 1-2 Spinazzola 90+2’
Roma 0.41 xGAC Milan 1.63 xG Goal

Tap a goal for the scorer and score.

Shot map

Every shot and where it was taken from.

 AC Milan attacking Roma attacking 
9’ Olivier Giroud (AC Milan), penalty, 0.76 xG, goal 15’ Tijjani Reijnders (AC Milan), open play, 0.14 xG, blocked 22’ Christian Pulisic (AC Milan), open play, 0.13 xG, saved 48’ Rafael Leão (AC Milan), open play, 0.14 xG, goal 57’ Tijjani Reijnders (AC Milan), open play, 0.14 xG, saved 51’ Ruben Loftus-Cheek (AC Milan), open play, 0.11 xG, blocked 6’ Ruben Loftus-Cheek (AC Milan), open play, 0.09 xG, blocked 28’ Rafael Leão (AC Milan), open play, 0.09 xG, blocked 69’ Stephan El Shaarawy (Roma), open play, 0.07 xG, saved 89’ Riccardo Pagano (Roma), open play, 0.06 xG, blocked 63’ Lorenzo Pellegrini (Roma), direct free kick, 0.05 xG, blocked 72’ Romelu Lukaku (Roma), open play, 0.05 xG, off target 22’ Fikayo Tomori (AC Milan), from a corner, 0.03 xG, off target 90+4’ Nicola Zalewski (Roma), open play, 0.04 xG, blocked 90+5’ Edoardo Bove (Roma), from a corner, 0.02 xG, off target 47’ Stephan El Shaarawy (Roma), set piece, 0.02 xG, off target 81’ Leonardo Spinazzola (Roma), set piece, 0.02 xG, off target 90+2’ Leonardo Spinazzola (Roma), open play, 0.02 xG, goal 90’ Bryan Cristante (Roma), from a corner, 0.02 xG, off target 11’ Leandro Paredes (Roma), open play, 0.01 xG, off target 86’ Bryan Cristante (Roma), open play, 0.01 xG, blocked 38’ Leandro Paredes (Roma), open play, 0.01 xG, off target 9’ Olivier Giroud (AC Milan), penalty, 0.76 xG, goal 15’ Tijjani Reijnders (AC Milan), open play, 0.14 xG, blocked 48’ Rafael Leão (AC Milan), open play, 0.14 xG, goal 57’ Tijjani Reijnders (AC Milan), open play, 0.14 xG, saved 22’ Christian Pulisic (AC Milan), open play, 0.13 xG, saved 51’ Ruben Loftus-Cheek (AC Milan), open play, 0.11 xG, blocked 6’ Ruben Loftus-Cheek (AC Milan), open play, 0.09 xG, blocked 28’ Rafael Leão (AC Milan), open play, 0.09 xG, blocked 69’ Stephan El Shaarawy (Roma), open play, 0.07 xG, saved 89’ Riccardo Pagano (Roma), open play, 0.06 xG, blocked 63’ Lorenzo Pellegrini (Roma), direct free kick, 0.05 xG, blocked 72’ Romelu Lukaku (Roma), open play, 0.05 xG, off target 90+4’ Nicola Zalewski (Roma), open play, 0.04 xG, blocked 22’ Fikayo Tomori (AC Milan), from a corner, 0.03 xG, off target 90+5’ Edoardo Bove (Roma), from a corner, 0.02 xG, off target 81’ Leonardo Spinazzola (Roma), set piece, 0.02 xG, off target 90+2’ Leonardo Spinazzola (Roma), open play, 0.02 xG, goal 47’ Stephan El Shaarawy (Roma), set piece, 0.02 xG, off target 90’ Bryan Cristante (Roma), from a corner, 0.02 xG, off target 11’ Leandro Paredes (Roma), open play, 0.01 xG, off target 86’ Bryan Cristante (Roma), open play, 0.01 xG, blocked 38’ Leandro Paredes (Roma), open play, 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

PlayerPosMinGAShxGxAKPCards
Rui Patrício GK900 0.000.000
Diego Llorente DEF900 0.000.000
Chris Smalling DEF900 0.000.021
Gianluca Mancini DEF820 0.000.000
Mehmet Zeki Çelik MID730 0.000.000
Nicola Zalewski MID901 0.040.000
Bryan Cristante MID902 0.030.102
Leandro Paredes MID732 0.030.000
Houssem Aouar MID300 0.000.000
Andrea Belotti FWD900 0.000.051
Stephan El Shaarawy FWD742 0.090.011
Lorenzo Pellegrini Sub601 0.050.092
Edoardo Bove Sub1711 0.020.021
Leonardo Spinazzola Sub1712 0.040.011
Romelu Lukaku Sub161 0.050.000
Riccardo Pagano Sub81 0.060.000

Starters first, then substitutes. xA is expected assists.

Before kick-off

Roma win 33% Avg odds 2.89
Draw 31% Avg odds 3.06
AC Milan win 36% Avg odds 2.69

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 and player data from Understat. Results and odds from football-data.co.uk. Referee data before 2025/26 from the Transfermarkt datasets project.