Atalanta Edges AC Milan 3–2 in Thrilling Serie A Clash
At Stadio Giuseppe Meazza, Atalanta edged a dramatic Serie A contest 3–2 against AC Milan, a result that dents Milan’s late push to secure a top‑four finish while keeping Atalanta firmly in the European race. The visitors led 3–0 with 40 minutes to play before surviving a furious Milan comeback that ultimately fell just short.
Ederson opened the scoring early, putting Atalanta 1–0 up in the 7th minute with an unassisted strike after Milan failed to clear their lines. The visitors doubled their lead in the 29th minute when Davide Zappacosta finished a move created by Nikola Krstovic, whose pass released the wing-back to make it 2–0. Frustration began to show for Milan shortly after as Rafael Leao was booked in the 34th minute.
At half-time Massimiliano Allegri moved aggressively, sending on Christopher Nkunku for Ruben Loftus-Cheek at the restart, with Nkunku tasked with adding creativity and penetration between the lines. Atalanta were forced into a defensive reshuffle in the 48th minute when Odilon Kossounou replaced the injured or fatigued Giorgio Scalvini, but the change did not blunt their threat.
On 51 minutes, Atalanta struck what looked like a decisive third. Giacomo Raspadori finished clinically after being set up by Ederson, whose forward run and final pass carved Milan open to make it 3–0. Raffaele Palladino then freshened his right flank, with Raoul Bellanova replacing Zappacosta in the 55th minute.
Milan responded with a triple change in the 58th minute to try to salvage something from the game. Youssouf Fofana replaced Rafael Leao, Niclas Fullkrug came on for Santiago Gimenez, and Zachary Athekame replaced Koni De Winter, signalling a shift in structure and an all‑out push for goals. Atalanta answered with their own double substitution on 63 minutes: Honest Ahanor came on for Kossounou, and Mario Pasalic replaced Charles De Ketelaere to add fresh legs in midfield and attack.
The game’s tempo remained high, and Atalanta’s Isak Hien received a yellow card in the 70th minute as Milan increased the pressure. In the 80th minute, Allegri made his final roll of the dice, introducing Pervis Estupinan for Davide Bartesaghi to add thrust from the left side.
Milan finally broke through in the 88th minute. Strahinja Pavlovic reduced the deficit to 3–1, finishing from close range after Samuele Ricci provided the assist with a well-delivered ball into the danger area. The hosts’ urgency spilled over into indiscipline: Estupinan was booked in the 89th minute, followed by Alexis Saelemaekers receiving a yellow card in the 90th minute as Milan chased every duel.
Deep into stoppage time, Milan set up a grandstand finish. In the 90+4th minute, Nkunku converted from the penalty spot with a composed effort, making it 3–2 and turning the closing seconds into a siege on Atalanta’s box. The visitors, however, held firm. In the aftermath of the spot-kick, Atalanta picked up two more bookings for game management and late challenges: Krstovic was shown a yellow card in the 90+5th minute for unsportsmanlike conduct, and Bellanova followed with a booking in the 90+6th minute for rough play as Atalanta clung on to a vital away win.
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 numbers suggest Milan applied sustained pressure and created the better chances, especially after the break, but Atalanta were markedly more ruthless in the key moments (3 goals from 5 shots on target, xG 1.08). Milan’s higher xG and shot volume underline that their late surge was not just cosmetic, yet they were undermined by poor defensive structure in transition and less efficient finishing (2 goals from 9 shots on target, xG 1.94). Atalanta’s eight saves, with Marco Carnesecchi heavily involved, highlight how much they were forced to defend deep in the second half, but their early three-goal cushion allowed them to absorb that pressure and manage the game.
Standings Update & Seasonal Impact
For AC Milan, this defeat adds three goals conceded and two scored to their overall record. They move from 50 goals for and 32 against to 52 scored and 35 conceded, dropping their goal difference from +18 to +17. Their points total remains 67, leaving them still in 4th place in Serie A but under increased pressure from the chasing pack in the battle for Champions League qualification.
Atalanta, meanwhile, add three goals to their tally and concede two, moving from 50 goals for and 34 against to 53 scored and 36 conceded. Their goal difference narrows slightly from +16 to +17, and they climb from 58 to 61 points. Remaining 7th, they close the gap on the European places above them and keep alive hopes of climbing into the top six, with this away win against a top-four rival a significant boost in both points and belief.
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
Palladino’s Atalanta executed a classic away blueprint: aggressive, vertical attacks early on, then compact, low‑block defending once the lead was established. Their clinical edge in front of goal (3 goals from 5 shots on target, xG 1.08) contrasted sharply with Milan’s wastefulness and slow defensive reactions in the first hour. Ederson’s box‑to‑box influence and Krstovic’s movement underpinned their ability to exploit Milan’s back three in transition.
Allegri’s plan with a 3‑5‑2 offered territorial control (57% possession, 541 passes at 88% accuracy) and eventually generated enough chances to win the game on xG, but Milan’s lack of defensive compactness and poor rest‑defence allowed Atalanta to score from a relatively modest attacking output. The second‑half changes, especially the introduction of Nkunku and Fullkrug, significantly improved Milan’s threat and turned the final 30 minutes into sustained pressure (20 total shots, 9 on target), yet the reaction came too late. In tactical terms, this was a story of Atalanta’s early ruthlessness and game management overcoming Milan’s belated dominance and structural lapses.






