Il Milan passa definitivamente alla difesa a tre, nonostante il grave infortunio capitato a Conti. Montella sceglie Calabria per occupare la corsia che era dell'ex Atalanta. In avanti Suso prende il posto di Andrè Silva, che aveva strabiliato in Europa League. Ancora panchina per Calhanoglu. Nessuna modifica invece nell'Udinese, con Delneri che si affida allo stesso undici che ha dato buoni segnali nella vittoria sul Genoa, sperando nella forza del gruppo per contrastare la rabbia e la forza del Diavolo. I friulani giocano una partita discreta, mostrando come il peggio sia alle spalle, ma le disattenzioni difensive costano caro, con Kalinic che ne approfitta per mettere in rete una doppietta e dare i tre punti al suo Milan. Finisce 2-1.
Formazione Milan (3-5-2): G. Donnarumma; Musacchio, Bonucci, Romagnoli; Calabria, Kessie, Biglia, Bonaventura, Rodriguez; Suso; Kalinic. All: Montella
Formazione Udinese (4-1-4-1): Scuffet; Stryger Larsen, Nuytinck, Danilo, Samir; Behrami; Jankto, Barak, De Paul, Lasagna; Maxi Lopez. All. Delneri
PRIMO TEMPO
Partita accesa fin da subito. Il Milan prova a mettere in difficoltà l'Udinese con dei lanci lunghi, ma i friulani restano compatti dietro la linea del pallone, tanto che il primo squillo lo battono i friulani. Al 10' Maxi Lopez scarica in verticale per Lasagna, che è solo contro Donnarumma e lo batte. I rossoneri chiamano a gran voce la VAR, Guida si consulta e poi annulla la rete. Risponde al 19' il Milan. Su calcio d'angolo infatti Kalinic riesce a svettare tutto solo in area di rigore, ma il suo colpo di testa colpisce il palo, con Bonucci che va al tap in, ma c'è un difensore friulano a salvare sulla linea. Preludio al gol del vantaggio. La squadra di Montella infatti continua ad attaccare e, alla prima distrazione delle zebrette, colpisce. Al 22' Danilo spazza malissimo, la palla arriva a Calabria, Nuytinck prova a tappare la falla, ma non ci riesce e il giovane del Milan mette in mezzo. Scuffet sbaglia l'uscita, Danilo si dimentica di essere un difensore, Kalinic ringrazia e insacca a porta vuota (1-0).
L'Udinese comunque non si scompone e riprende a giocare come sa. Il Milan comunque dietro non sembra irreprensibile e infatti anche la banda Montella commette un errore. Al 28' infatti Romagnoli regala ingenuamente palla a Lasagna, che di potenza batte Donnarumma e segna il suo primo gol in bianconero (1-1). Delneri può godersi però poco il pareggio, perchè la sua difesa ha dei cali di concentrazione drammatici. Puntualmente al 31' ne arriva un altro: su calcio d'angolo la palla arriva sempre a Kalinic, De Paul lo tiene gioco chiamando un fuorigioco incomprensibile, mentre Samir pensa a qualcos'altro e lascia al croato tutto lo spazio necessario per buttare in rete il gol del nuovo vantaggio (2-1). Dopo questa girandola di errori, le squadre iniziano a stare più attente e accorte, facendo calare i ritmi. C'è comunque tempo al 36' per mettere ancora una volta in mostra le condizioni agghiaccianti di Samir, che viene letteralmente bruciato da Kessiè, che per fortuna dell'Udinese vuole fare tutto da solo e, da posizione defilatissima calcia in porta, permettendo a Scuffet di respingere. Il primo tempo termina dunque sul 2-1.
SECONDO TEMPO
Si riparte e il copione è sempre quello. Milan che attacca, Udinese che si copre. Al 50' Suso ha tutto il tempo per crossare in mezzo, Romagnoli ci arriva di testa (difesa dell'Udinese ancora una volta disattenta) e costringe Scuffet al volo disperato per metterla in angolo. Friulani che gioco forza devono star bassi e a giovarne non è lo spettacolo. Al 62' il neoentrato Fofana fa rivedere sprazzi della sua abilità palla al piede, saltando un avversario ed entrando in area, ma il suo tiro non è abbastanza insidioso per battere Donnarumma, che respinge.
Al 67' è ancora l'Udinese ad avere una buona chance. De Paul dalla trquarti mette in mezzo per Bajic, subentrato a Maxi Lopez, il quale prende bene il tempo e colpisce di testa, ma la sua conclusione finisce di poco alta. Risponde il Milan tre minuti dopo, con una punizione battuta da Ricardo Rodriguez, ma alzata in angolo da Scuffet. Quest'ultimo è invece imperfetto poco dopo su una botta di Calabria non impossibile da controllare, ma che invece respinge, lasciando la possibilità di tap in al Milan, che però non concretizza. Rossoneri che all'84' l'avrebbero anche chiusa, con Kalinic che elude grazie a un filtrante la marcatura di Nuytinck e Danilo, ma Guida anulla tutto dopo essersi consultato col VAR. È l'ultima emozione, finisce 2-1, il Milan porta a casa tre punti sudando non poco.