Atalanta Defeats AC Milan 3-2 in Thrilling Serie A Match
At Stadio Giuseppe Meazza, Atalanta edged AC Milan 3-2 in a dramatic Serie A contest, a result that dents Milan’s push to lock in a top-four finish while significantly boosting Atalanta’s late charge for European qualification. Milan’s late rally fell just short, leaving them vulnerable in the Champions League race, while Atalanta close the gap on the sides directly above them.
Atalanta struck early. On 7 minutes, Ederson put the visitors in front with an unassisted strike, capitalising on Milan’s slow start and punishing loose defending. The lead was doubled in the 29th minute when Davide Zappacosta finished a well-worked move, assisted by Nikola Krstovic, whose service from the right created the opening for a composed finish. Milan’s frustration surfaced shortly after as Rafael Leao went into the book in the 34th minute for a yellow card.
At half-time, Massimiliano Allegri moved aggressively. At the restart on 46 minutes, Christopher Nkunku replaced Ruben Loftus-Cheek, signalling a shift towards greater attacking threat between the lines. Atalanta responded with their own defensive adjustment in the 48th minute, as Odilon Kossounou came on for Giorgio Scalvini to refresh the back line.
The visitors appeared to kill the game on 51 minutes. Giacomo Raspadori made it 3-0, finishing clinically after being set up by Ederson, whose earlier goal and assist underlined his dominance in central areas. Atalanta then freshened their right flank in the 55th minute, with Raoul Bellanova replacing Zappacosta.
Milan launched a triple change on 58 minutes to chase the game. Youssouf Fofana replaced Rafael Leao, Niclas Fullkrug came on for Santiago Gimenez, and Zachary Athekame replaced Koni De Winter, as Allegri restructured both his attack and defensive shape. Atalanta answered with a double substitution on 63 minutes: Honest Ahanor came on for Kossounou, and Mario Pasalic replaced Charles De Ketelaere to add fresh legs and control in midfield and the half-spaces.
Isak Hien was booked for Atalanta in the 70th minute, a yellow card that reflected the increasing pressure Milan were beginning to exert. Allegri used his final change in the 80th minute, introducing Pervis Estupinan for Davide Bartesaghi to add thrust down the left.
Milan finally broke through in the 88th minute. Strahinja Pavlovic pulled one back, heading or finishing from close range after a delivery by Samuele Ricci, whose assist rewarded Milan’s late territorial dominance. The hosts’ intensity also brought disciplinary risk: Estupinan was booked in the 89th minute, followed by a yellow card for Alexis Saelemaekers in the 90th minute as Milan continued to push aggressively.
Deep into stoppage time, Milan set up a grandstand finish. In the 90+4th minute, Nkunku converted from the penalty spot with a solo effort (no assist), reducing the deficit to 3-2 and validating Allegri’s decision to introduce him at the break. Atalanta then absorbed a nervy finale, with their own discipline tested in added time: Krstovic was booked for unsportsmanlike conduct in the 90+5th minute, and Bellanova received a yellow card for roughing in the 90+6th minute. Despite the late surge and flurry of cards, Atalanta held on to secure all three points.
Fixture Statistics & Tactical Audit
- xG (Expected Goals): AC Milan 1.94 vs Atalanta 1.08
- Possession: AC Milan 57% vs Atalanta 43%
- Shots on Target: AC Milan 9 vs Atalanta 5
- Goalkeeper Saves: AC Milan 2 vs Atalanta 8
- Blocked Shots: AC Milan 3 vs Atalanta 2
The underlying numbers suggest Milan created the higher volume and quality of chances (xG 1.94 vs 1.08, shots on target 9 vs 5), but Atalanta were far more ruthless in front of goal and protected their box better. Marco Carnesecchi’s eight saves underline how often Milan worked the goalkeeper and point to Atalanta’s resilience under pressure (Atalanta saves 8 vs Milan shots on target 9). Milan’s 57% possession and superior passing accuracy did translate into territory and late pressure, but Atalanta maximised their more limited attacking phases with clinical finishing (3 goals from 5 shots on target) and managed game states effectively once 3-0 ahead. The 3-2 scoreline slightly flatters Atalanta relative to xG, yet reflects their efficiency and Milan’s slow defensive start.
Standings Update & Seasonal Impact
For AC Milan, this 3-2 home defeat adds 2 goals scored and 3 conceded to their pre-match tally of 50 for and 32 against, moving them to 52 goals for and 35 against. Their goal difference drops from +18 to +17. With no points gained, they remain on 67 points. The loss keeps them in 4th place in Serie A, but with their cushion in the Champions League positions reduced, they are now more exposed to pressure from the chasing pack in the final rounds.
Atalanta, starting the day on 58 points with 50 goals scored and 34 conceded, now rise to 61 points thanks to the win. Their goals for increase to 53 and goals against to 36, maintaining a positive but slightly reduced goal difference from +16 to +17. Remaining 7th in the table, they close the gap on the European spots above them and stay firmly in contention for continental qualification, tightening the race for the final European places heading into the last stretch of the season.
Lineups & Personnel
AC Milan Actual XI
- GK: Mike Maignan
- DF: Koni De Winter, Matteo Gabbia, Strahinja Pavlovic
- MF: Alexis Saelemaekers, Ruben Loftus-Cheek, Samuele Ricci, Adrien Rabiot, Davide Bartesaghi
- FW: Santiago Gimenez, Rafael Leao
Atalanta Actual XI
- GK: Marco Carnesecchi
- DF: Giorgio Scalvini, Isak Hien, Sead Kolasinac
- MF: Davide Zappacosta, Marten de Roon, Ederson, Nicola Zalewski
- FW: Charles De Ketelaere, Giacomo Raspadori, Nikola Krstovic
Expert's Post-Match Verdict
Raffaele Palladino’s Atalanta executed a classic away blueprint: compact without the ball, explosive in transition, and ruthless in the final third (3 goals from xG 1.08 and 5 shots on target). Early vertical passes into Krstovic and the advanced forwards stretched Milan’s back three, allowing Ederson to dominate the central lanes and decide the game with a goal and an assist. Atalanta’s defensive structure, while under sustained pressure, was supported by Carnesecchi’s outstanding shot-stopping (8 saves vs Milan’s 9 shots on target), which turned Milan’s territorial control into largely manageable danger.
For Massimiliano Allegri, this was a tactical recovery that came too late. Milan’s 57% possession, higher xG (1.94) and 20 total shots point to a side that eventually imposed itself but was punished for a passive and disorganised first hour. The triple substitution on 58 minutes and the introduction of Nkunku at half-time improved their attacking fluidity and pressing, reflected in the late goals from Pavlovic and Nkunku. However, the structural fragility that allowed Atalanta to race into a 3-0 lead, combined with reliance on late surges rather than sustained control, turned a statistically dominant display into a damaging defeat. In the context of the run-in, Atalanta’s efficiency and resilience under pressure contrasted sharply with Milan’s costly defensive lapses, reshaping the dynamics of both the European and Champions League races.






