Come da previsioni, primo tempo molto tattico fra Verona e Milan: squadre disposte a specchio, con lo stesso modulo. I padroni di casa puntano al pareggio, piazzano dieci uomini in fase difensiva per sporcare le linee di passaggio avversarie. Allegri è tornato al 3-5-2, il rientro di Gabbia cambia faccia alla smarrita difesa delle ultime giornate. Al 10′ tentativo di Edmundsson su passaggio errato di Fofana: palla sopra la traversa di poco, con Maignan che impreca. Passano 2′ e una pericolosa spallata dello stesso difensore scaligero ai danni di Rabiot genera una punizione al limite dell’area, sul cross tagliato di Modric è abile Montipò ad allontanare con i pugni. Al 17′ salta la caviglia di Oyegoke, entra l’esperto Pol Lirola. Passa qualche minuto e Akpa Akpro abbatte Rabiot: giallo netto e punizione per il Diavolo, batte Bartesaghi ma colpisce troppo forte e la sfera va fuori. Al 31′ contropiede Milan: tacco di Pulisic per Fofana, arriva in corsa Rabiot servito dal connazionale, ma il tiro è debole e facile preda del guardiano dei pali gialloblù. Arriva al 40′ il vantaggio rossonero con Rabiot (migliore in campo in assoluto nei primi 47′): la mezzala transalpina recupera palla a metà campo, serve Leao sulla fascia, il portoghese “legge” il taglio del compagno verso la porta veneta e lo serve con un passaggio perfetto per la rete vincente. Al 46′ pericoloso contropiede Hellas con la difesa meneghina completamente sbilanciata: Maignan si oppone a Belghali lanciato a rete! Intervento da campione e facce scure fra i tifosi di casa. Si va al riposo, quanto mai necessario per il caldo che attanaglia il Bentegodi. In quel momento il Verona è in B, il Milan ha agganciato il Napoli al secondo posto.
Le squadre risalgono dagli spogliatoi e la sorpresa è l’ingresso del giovane attaccante rumeno classe 2006 Vermesan nelle file scaligere. Prende il posto di Bradaric e affianca Orban davanti. Allegri non cambia nulla e insiste con Leao e Pulisic davanti. Al 52′ pericolosa botta da fuori di Belghali, palla a fil di palo. Primi cambi di Allegri al 62′: Ricci, Saelemaekers e Gimenez prendono il posto di Fofana, Athekame e Leao. Insieme a loro entra Al Musrati per Akpa Akpro a rischio rosso per l’ammonizione del primo tempo. Al 68′ il baby Vermesan impegna Maignan con un velenoso tiro da fuori. Passa un minuto e lo stesso giovanotto fa venire i brividi con un altro tiro fuori di poco. Al 73′ annullata una rete a Gabbia (cross di Saelemaekers) per fuorigioco di Gimenez. Al 79′ altro cambio rossonero: dentro Nkunku per l’elfo americano Pulisic, ancora sotto tono, ma più vivo atleticamente. Passano 3′ e doppio cambio per Sammarco con Isaac e Lovric che danno il cambio a Bernede e Gagliardini (uscito sfinito, dopo una grande partita in fase di contenimento). Grande salvataggio di Gabbia su Orban servito da un cross basso di Lovric: vale come un gol. Valentini salva sulla linea di porta su tiro di Saelemaekers (89′). Al 94′ il fischio finale dell’arbitro padovano Chiffi (direzione serena).