Le match a commencé difficilement pour l'équipe locale lorsque l'Atalanta a rapidement montré de l'initiative dans son jeu. Dès la 7e minute, Ederson a profité d'une situation confuse dans la surface de réparation pour marquer et ouvrir le score pour l'équipe visiteuse.
Après avoir encaissé un but rapidement, l'AC Milan a essayé de pousser son équipe vers l'avant mais a continué à laisser l'adversaire exploiter l'espace. À la 30e minute, Davide Zappacosta a doublé l'écart après une combinaison nette sur l'aile droite, aidant l'Atalanta à mener 2-0 avant la mi-temps.
En deuxième mi-temps, le jeu n'a pas beaucoup changé car l'Atalanta a toujours bien contrôlé le milieu de terrain. À la 51e minute, Giacomo Raspadori a décoché une frappe dangereuse portant le score à 3-0, mettant l'AC Milan dans une situation très difficile.
Dans une situation d'impasse, l'équipe de l'entraîneur Massimiliano Allegri a concentré toutes ses forces sur l'attaque dans les dernières minutes du match. Leurs efforts n'ont été récompensés qu'à la 88e minute lorsque Strahinja Pavlovic a marqué de la tête pour réduire le score à 1-3.
Dans le temps additionnel, l'AC Milan a obtenu un penalty après une faute dans la surface de réparation. Christopher Nkunku a réussi, portant le score à 2-3, mais le temps restant n'a pas suffi à l'équipe locale pour créer un retournement de situation.
Cette défaite place l'AC Milan à la 4e place avec 67 points après 36 journées. Cependant, ils sont suivis de près par la Roma et le Como avec le même ou presque le même nombre de points, ce qui rend la course au top 4 tendue lors des deux dernières journées.
S'ils n'améliorent pas leur forme, l'AC Milan risque tout à fait de perdre sa place en Ligue des champions la saison prochaine, dans un contexte de pression croissante.