Roma startede bedst af de to hold, men det var Milan, der kom foran mod spillets gang, da Yacine Adli åbnede sin konto for sæsonen med en flot afslutning efter 11 minutter, hvor han satte sin forsvarer af, inden han med venstrefoden sparkede bolden op i det modsatte hjørne.
Og de var tæt på at fordoble føringen efter en halv time, da Theo Hernandez' skud skabte problemer for Mile Svilar i hans første ligastart i denne sæson.
Gæsterne forblev dog tro mod deres offensive spil, og Zeki Celiks afslutning blev på vidunderlig vis vippet væk af Mike Maignan få øjeblikke senere. Franskmanden måtte også redde flot fra Leandro Spinazzola fem minutter før pausen, og Roma var lidt uheldige med at være bagud ved pausen.
Milan kom bedre med i anden halvleg og burde have fordoblet føringen, da Matteo Gabbia headede helt skævt efter at være blevet spillet blank af Hernandez på et frispark.
Heldigvis blev hans afbrænder ikke afgørende, da en meget mere pålidelig målscorer i Olivier Giroud headede sit 10. Serie A-mål ind i denne sæson, efter at være blevet headet flot fri af Simon Kjær. Dermed har han nu scoret et tocifret antal mål tre sæsoner i træk, og han er således den første Milan-spiller til at gøre det siden Alexandre Pato.
Roma kom tilbage fra 2-0 til 2-2 i dette opgør i sidste sæson, og Rossoneri følte måske et deja-vu, da gæsterne fik tildelt et straffespark, som Leandro Paredes omsatte til sit første mål i denne sæson.
Men ethvert håb om, at Giallorossi skulle udligne denne gang, blev udslettet, da Hernandez med et tordenbrag bragte Milan foran med to mål, da han ramte overliggeren efter Girouds delikate oplæg, hvor han kækt flikkede bolden med hælen gennem benene på Rasmus Nissen Kristensen.
Indskiftede Yunus Musah var tæt på at pynte på resultatet i overtiden, men hans tåhyler prellede af på stolpen. Resultatet påførte Roma det tredje liganederlag på udebane i træk, hvilket er første gang siden 2021, og efterlader dem på niendepladsen uden for kampen om de europæiske pladser.

