Il Milan non sfrutta la battuta d'arresto della Juventus e pareggia contro il Bologna, perdendo l'opportunità di inserirsi nella corsa Scudetto. A San Siro termina con uno scoppiettante 2-2.
Il Bologna sblocca il risultato con Zirkzee, il Milan rimonta con la doppietta di Loftus Cheek, ma si fa riacciuffare da Orsolini nei minuti di recupero. L'arbitro assegna tre rigori, due al Milan e uno al Bologna, ma l'unico che finisce in rete è quello del centrocampista rossoblù.
Bologna e Milan si affrontano a viso aperto e regalano spettacolo agli spettatori del Giuseppe Meazza. Joshua Zirkzee, osservato speciale della dirigenza rossonera, apre le marcature alla mezz'ora spendendo il pallone sotto le gambe di Mike Maignan da posizione defilata.
A cinque minuti dall'intervallo, Ferguson commette fallo su Kjaer nell'area rossoblù e il direttore di gara assegna un calcio di rigore al Milan. Olivier Giroud parte dal dischetto e trova i guantoni di Skorupski.
I rossoneri restano in avanti e trovano il pareggio con la deviazione vincente di Ruben Loftus-Cheek sul cross dalla traversone di Calabria. In avvio di ripresa, Zirkzee si libera della difesa rossonera con una giocata di grande classe, ma si divora il 2-1 a due passi dalla porta.
Rafa Leao si illumina e, partendo dalla sua metà campo, raggiunge l'area rivale e costringe Beukema a buttarlo giù per evitare guai peggiori. Il direttore di gara concede il secondo rigore al Milan. Questa volta batte Theo Hernandez, ma il pallone sbatte sul legno.
I padroni di casa insistono e completano la rimonta a cinque minuti dalla fine. Cross di Florenzi e incornata vincente di Loftus-Cheek, che festeggia il quarto gol nelle ultime quattro partite di campionato.
Terracciano, al debutto in campionato con il Milan, commette un'ingenuità su Kristiansen nei minuti di recupero e regala un rigore al Bologna, che non spreca con Orsolini dal dischetto. Il Milan si ferma a sette punti dalla vetta occupata momentaneamente dalla Juventus, mentre il Bologna è sesto a pari punti con la Lazio.