Sans la direction directe de l'entraîneur Massimiliano Allegri en raison d'une suspension de banc depuis le match contre le Como précédent, l'équipe locale de San Siro a commencé le match de manière instable. Les difficultés ont continué pour Milan lorsque le milieu de terrain Ruben Loftus-Cheek s'est blessé à la tête et a dû quitter le terrain sur une civière dès le début.
Malgré cela, l'AC Milan s'est efforcé d'organiser une attaque. À la 36e minute, Christian Pulisic s'est échappé après une passe des Saelemaekers mais n'a pas pu battre le gardien Edoardo Corvi lors d'un face-à-face dans un angle fermé. Six minutes plus tard, le milieu de terrain américain a de nouveau eu une occasion sur une passe de la tête de Rabiot, mais sa frappe est passée à côté du poteau.
En deuxième mi-temps, l'équipe locale a maintenu la pression. Corvi a continué à jouer concentré en se précipitant pour arrêter la frappe de Rafael Leao, avant que le défenseur Enzo Troilo n'intercepte à temps l'effort de dribble de Pulisic dans le but vide. À la 64e minute, Leao a décoché une belle volée mais le ballon a trouvé le poteau.
Ne créant pas trop d'occasions, mais Parme a marqué de manière inattendue à la 80e minute. Troilo a marqué de la tête dans le filet de Milan après un coup franc de Valeri. Au départ, le but n'a pas été validé, mais après avoir consulté la VAR, l'arbitre a déterminé que le but était valable.
Mené au score, l'AC Milan a poussé son équipe vers l'avant pour chercher un but égalisateur avec la participation de Fullkrug et Nkunku. À la 90e minute, Fullkrug a eu une occasion nette, mais sa frappe a changé de direction et a frôlé le poteau de justesse.
Au final, Milan a subi une défaite 0-1. Ce n'est que leur deuxième défaite en Serie A cette saison (après le match d'ouverture), mais ce résultat a creusé l'écart entre l'équipe rouge et noire et l'Inter Milan à 10 points.