Vince e convince il Milan che si mette al riparo da brutte sorprese, dopo aver dilagato per 3-0 all’andata in Bulgaria, battendo 1-0 in casa il Ludogorets nel ritorno dei sedicesimi di finale di Europa League. A segno, nella prima parte del primo tempo, Fabio Borini: da lì in poi, il Milan si è limitato a gestire il possesso palla, sostanzialmente non correndo mai rischi veri e propri. Qualificazione, già in cassaforte, ora confermata: i rossoneri sono la seconda squadra italiana, dopo la Lazio, ad approdare agli ottavi di finale di Europa League.
Gattuso mischia titolari e seconde linee a San Siro, per dare un po’ di riposo ai più affaticati: il Donnarumma tra i pali è Antonio, c’è Romagnoli accanto a Zapata, mentre Abate e Rodriguez coprono le due fasce. Nel mezzo c’è Locatelli con Kessié e Montolivo, davanti l’inedito trio con André Silva da centrale e Borini-Cutrone sulle fasce. Dall’altra parte, Dimitrov risponde con il solito 4-2-3-1: Broun tra i pali, Cicinho, Terziev, Moti e Natanael a formare la linea di difesa, Goralski e Anicet da diga, Wanderson, Marcelinho e Vura a supportare l’unica punta Swierczok.
Inizio forte, ma un po’ confuso, del Ludogorets, che comunque non riesce ad impensierire Donnarumma se non con un traversone allontanato di pugno. Dopo pochi minuti, però, il Milan carbura ed esce con più continuità: bene il solito Kessié, attivo anche Cutrone largo a sinistra. Da suo piede parte il passaggio arretrato per André Silva che porta alla prima conclusione della gara, ma il destro potente del portoghese è preda del portiere. Comunque, i rossoneri prendono bene il controllo del gioco e, nonostante la manovra non sia rapidissima, riescono a spingere gli ospiti verso la propria area di rigore.
A sorprendere il Ludogorets è però l’ennesima scorrazzata del primo tempo di Cutrone: stavolta la palla, col mancino, è perfetta sul secondo palo, dove sbuca Borini che può depositare in rete il destro. 1-0, gioiscono gli sparuti tifosi presenti a San Siro. Sbloccata la gara, gli uomini di Gattuso sembrano adagiarsi leggermente e lasciarsi andare a qualche errore di troppo, soprattutto in fase di impostazione: Locatelli sanguinosissimo al trentacinquesimo, ma per sua fortuna Wanderson non riesce a dare forza alla conclusione dal limite. Ci prova al volo, su iniziativa di Cicinho, anche Marcelinho, ma il suo destro dal dischetto termina largo: si va così negli spogliatoi con un solo gol di distacco tra le due squadre.
Il secondo tempo inizia sui ritmi (blandi a dir poco) sui quali era finito il primo, con il Milan a fare possesso e gli ospiti a cercare sporadiche ripartenze veloci. C’è spazio anche per gli applausi ad Antonio Donnarumma, che si oppone bene a Swierczok in area. All’ora di gioco Gattuso dà riposo a Cutrone e Kessié, inserendo, oltre a Nikola Kalinic, un José Mauri d’annata. Si gioca davvero per onorare la competizione a San Siro: ottimo Natalen che salta due persone ma non centra la porta col mancino, stesso destino di Borini su punizione. Kalinic lotta ed ottiene piazzati importanti per far salire la squadra, ma oramai la gara è incanalata verso i binari dei rossoneri: si gioca sostanzialmente solo di possesso, le occasioni ed i contrasti latitano, e la partita scorre tranquillamente verso il triplice fischio.