Ad inizio primo tempo parte meglio il Milan che è più aggressivo, soprattutto sui portatori di palla del Sassuolo. Dopo un salvataggio della difesa neroverde su un affondo di Abate sulla destra i rossoneri passano in vantaggio al 10': Bonaventura controlla palla al limite dell'area, avanza e calcia di destro: Acerbi devìa e Consigli non può nulla. Passa soltanto un minuto ed il Sassuolo trova il pareggio con Politano che approfitta di un errato disimpegno di Abate per entrare in area e battere Donnarumma in uscita. Al 21' il Sassuolo si vede annullare il gol del vantaggio di Adjapong che batte il portiere del Milan di mano e l'arbitro annulla. La pressione dei neroverdi ma l'occasione più grande è del Milan: al 40' Bonaventura calcia nel cuore dell'aria di rigore ma Magnanelli si immola a salvare con il corpo.
Il secondo tempo riparte senza Montella in panchina che viene espulso dall'arbitro e il Sassuolo ne approfitta con un uno-due che mette fuori gioco il Milan: al 54' i neroverdi passano in vantaggio grazie ad Acerbi che di destro su assist dalla trequarti di Pellegrini e due minuti dopo proprio quest'ultimo mette a segno la sua prima rete in serie A quando salta Gustavo Gomez con una finta e con freddezza batte Donnarumma per il 3-1 Sassuolo. Il Milan non ci sta e al 69' riapre il match grazie ad un calcio di rigore trasformato da Bacca, per un fallo, molto dubbio, di Antei su Niang.
A questo punto i rossoneri ci credono e 5' dopo trovano anche la rete del 3-3 grazie al primo gol in Serie A del diciottenne Locatelli che di esterno sinistro da fuori area batte Consigli imparabilmente. I rossoneri sono scatenati e dopo aver trovato la rete del pareggio attaccano a testa bassa e trovano incredibilmente anche la rete del sorpasso grazie ad un colpo di testa di Paletta (primo gol per lui con la maglia del Milan). Il Sassuolo prova a reagire subito e due minuti dopo Politano costringe Donnarumma ad un miracolo ma non c'è più tempo ed il Milan si aggiudica lo spareggio per l'Europa.