La sconfitta della Lazio in quel di Lecce regala ulteriori motivazioni alla Juventus, che sa che con una vittoria a San Siro il discorso scudetto sarebbe praticamente chiuso. Dal canto suo, il Milan vuole proseguire la scalata al quinto posto che vorrebbe dire Europa League. Pioli non rischia l’acciaccato Cahanoglu e concede un turno di riposo a Bonaventura: chance dal primo minuto per Paqueta e Rebic. Sarri deve rinunciare agli squalificati De Ligt e Dybala, sostituiti da Rugani e dall’ex Gonzalo Higuain.
Primo tempo
Il primo tiro verso la porta è di Saelemaekers al minuto 8: il belga riceve da Theo Hernandez e prova il sinistro, ma la conclusione è strozzata e finisce debole tra le braccia di Szczesny. Due minuti dopo pericoloso Bernardeschi su punizione: il velenoso tiro-cross del fantasista attraversa tutta l’area con Bonucci che non ci arriva di un soffio. Al 13°, Ronaldo riceve palla, si accentra sul destro e calcia: la palla, leggermente deviata da Conti, termina larga. Dopo una decina di minuti di buona Juventus, al 23° ci prova Ibrahimovic: lo svedese entra in area e incrocia il sinistro, ma la palla è debole e preda di Szczesny. Azione fotocopia due minuti dopo: ancora Hernandez al cross basso, ancora Ibra di sinistro – stavolta di prima intenzione – ancora il portiere della Juventus a distendersi e bloccare. Alla mezz’ora di gioco primo giallo della gara: Paquetà si fa sorprendere da Bentancur e lo stende sul vertice destro dell’area. Qualche minuto dopo, altro rossonero sul taccuino dell’arbitro Guida: si tratta di Bennacer per un pestone a Pjanic. Al 38° ci prova Danilo, e sulla sua botta terrificante si immola Kjaer che la respinge con la testa. Allo scadere del secondo tempo, ci prova Higuain: il Pipita si gira al limite dell’area e va alla conclusione, provvidenziale la deviazione di Hernandez che smorza il pallone. Subito dopo, Ibrahimovic va in rete a tu per tu con Szczesny, ma l’arbitro Guida annulla tutto per fuorigioco dello svedese. E’ l’ultima occasione di un primo tempo dai ritmi bassi e dalle poche occasioni, che non può che terminare 0-0.
Secondo tempo
Al rientro in campo non c’è Paqueta, sostituito da Calhanoglu, mentre nella Juventus sono in campo gli stessi undici della prima frazione. Passa poco più di un minuto e la Juventus passa in vantaggio con un gol incredibile di Rabiot: il francese parte dalla sua metà campo ed arriva al limite dell’area, dove lascia partire un sinistro imparabile per Donnarumma. Il Milan sbanda e al 53° prende il secondo gol: su un lancio dalle retrovie, Romagnoli e Kjaer combinano un pasticcio scontrandosi tra di loro e lasciano tutto solo Ronaldo davanti a Donnarumma per il raddoppio bianconero. Al 59° ammonito Rebic per un tocco di braccio e subito dopo Pioli inserisce Leao per Saelemaekers. In realtà, l’arbitro viene richiamato al VAR perché il tocco di braccio in realtà è di Bonucci, ammonito: a battere il rigore va Zlatan Ibrahimovic, che spiazza Szczesny ed accorcia la distanze. Il gol rinvigorisce il Milan, che cinque minuti dopo trova il pareggio: sponda di Ibrahimovic per Franck Kessie, che sfonda in area, salta Bonucci e fredda Szczesny. Ma ciò che succede a San Siro è incredibile, perchè passa un minuto e arriva addirittura il 3-2: Rafael Leao recupera una palla vagante e calcia sul primo palo dove Szczesny viene ancora una volta beffato da una deviazione, stavolta di Rugani. Al 75° Milan ad un passo dal poker: Rebic va via in velocità, incrocia il sinistro ma trova Szczesny di piede, poi prima Leao e poi Bonaventura non riescono a ribadire in rete. Tre minuti dopo, è provvidenziale Donnarumma a deviare d’istinto il colpo di testa di Rugani. La Juventus in difesa è in bambola: Alex Sandro regala palla a Bonaventura, che serve Ante Rebic: il croato lascia partire un sinistro di prima intenzione che fulmina Szczesny per il poker rossonero. Subito dopo, Pioli ultima i cambi inserendo Calabria e Krunic per Conti (ammonito) e Rebic. Negli ultimi quindici minuti – compresi i sei di recupero – non succede nulla di rilevante, se non una punizione velenosa di Calhanoglu deviata con qualche patema da Szczesny. Il Milan, dunque, può esultare per un’incredibile rimonta ai danni della Juventus, che vinceva 0-2 e alla fine vince 4-2 salendo momentaneamente al quinto posto a quota 49.