Il Milan cancella le due sconfitte con Atalanta e Inter (in Coppa Italia) e conquista tre punti fondamentali che lo tengono in testa alla classifica con 46 punti. Pioli ritrova Bennacer e deve cominciare a riflettere sui rigori: Ibra ha sbagliato il 4° penalty stagionale.
Il primo tempo
Il Milan lancia Leao trequartista alle spalle di Ibra e Tomori al centro della difesa con Romagnoli. Rebic torna dal primo minuto in campionato come esterno sinistro. I padroni di casa rispondono con Barrow centravanti e con Soriano e Sansone a supporto. L'inizio premia i rossoneri. Theo colpisce una clamorosa traversa su punizione, Skorupski è miracoloso su Ibra che lo impegna con un severo colpo di testa. Sul proseguo dell'azione Danilo stende Leao e Doveri non può far altro che assegnare il rigore. Dal dischetto si presenta Ibra che si fa parare il tiro, sulla ribattuta arriva Rebic che la piazza all'angolino e porta avanti i rossoneri (26'). Il vantaggio sveglia il Bologna che crea due pericolosissime occasione ben sventate da Donnarumma in uscita bassa (la prima su Sansone e la seconda su Dominguez). Si va al riposo col Milan in vantaggio.
Il secondo tempo
La ripresa riparte in sostanziale equilibrio ma al primo affondo il Milan si guadagna il secondo rigore di giornata: lancio di Leao per Ibra che viene anticipato da Soumaouro con un doppio tocco di mano. Rigore netto e stavolta va Kessié che insacca senza problemi. Il Milan raddoppia e congela il risultato. I rossoneri potrebbero anche triplicare ma Skorupski fa un gran parata su un bel diagonale di Calabria. Girandola di cambi: entrano Palacio e Poli nel Bologna, Mandzukic e Bennacer (finalmente) con Krunic nel Milan. La partita sembra scorrere senza problema ma a nove minuti dalla fine Theo commette un grave errore in disimpegno e il Bologna riapre la gara: Palacio centra per Poli che batte Donnarumma. Gli ultimi minuti sono di pura sofferenza per gli uomini di Pioli che resistono e portano a casa una vittoria fondamentale.