sportnews full logo

Atalanta Edges AC Milan 3–2 in Serie A Thriller

At Stadio Giuseppe Meazza, Atalanta edged AC Milan 3–2 in a dramatic Serie A contest, a result that tightens the race for European places. Milan’s late rally fell short, leaving them stalled in the Champions League positions, while Atalanta’s away win keeps them firmly in the hunt just outside the top four.

Atalanta struck first inside seven minutes, when Éderson drove forward and finished with a solo effort, giving the visitors an early 1–0 lead. The advantage was doubled in the 29th minute: Nikola Krstović slipped a pass into the right channel for Davide Zappacosta, who arrived from wing-back to finish clinically for 2–0.

Tension rose for Milan on 34 minutes as Rafael Leão went into the book with a yellow card, compounding a frustrating first half for the hosts who went into the interval two goals down.

Milan looked for a spark immediately after the restart. In the 46th minute Christopher Nkunku replaced Ruben Loftus-Cheek, adding another attacking presence between the lines. Atalanta responded with their own adjustment on 48 minutes, as Odilon Kossounou replaced Giorgio Scalvini in the back three.

The visitors then appeared to put the game out of reach in the 51st minute. Éderson, already on the scoresheet, turned provider, slipping a clever ball into Giacomo Raspadori, who finished to make it 3–0 to Atalanta.

On 55 minutes Atalanta freshened up the right flank, with Raoul Bellanova replacing Zappacosta. Milan then made a triple change on 58 minutes to chase the game: Youssouf Fofana replaced Leão, Niclas Füllkrug came on for Santiago Giménez, and Zachary Athekame replaced Koni De Winter, signalling a more direct and aggressive approach.

Atalanta continued to rotate in the 63rd minute. Honest Ahanor replaced Kossounou, while Mario Pašalić came on for Charles De Ketelaere, adding fresh legs in midfield and attack. The visitors then picked up a booking in the 70th minute when Isak Hien received a yellow card, reflecting Milan’s increased pressure.

Milan’s final substitution came on 80 minutes, with Pervis Estupiñán replacing Davide Bartesaghi on the left, further boosting attacking thrust from deep. The hosts finally broke through in the 88th minute: from sustained pressure, Samuele Ricci delivered a ball that found Strahinja Pavlović, who converted to reduce the deficit to 3–1.

Momentum briefly swung. Estupiñán was booked in the 89th minute with a yellow card, followed by another Milan caution on 90 minutes for Alexis Saelemaekers as the game became increasingly stretched and emotional.

Deep into stoppage time, Milan set up a grandstand finish. In the 90+4 minute, Nkunku converted from the penalty spot with an unassisted strike to make it 3–2, giving the hosts late hope. Atalanta then managed the remaining moments, but not without further disciplinary issues: Krstović was shown a yellow card for unsportsmanlike conduct in the 90+5 minute, and Bellanova followed with a yellow for roughing in the 90+6 minute as the visitors clung on to their narrow lead.

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 more sustained pressure, particularly after the break, with higher xG and more shots on target indicating they created the better chances (xG 1.94 vs 1.08; shots on target 9 vs 5). However, Atalanta’s early efficiency in transition and their ability to punish Milan’s defensive structure in the first hour allowed them to build a decisive lead. Marco Carnesecchi’s eight saves underline how much work Atalanta’s goalkeeper had to do to preserve the advantage, while Milan’s two saves reflect Atalanta’s more selective but ruthlessly effective attacking.

Standings Update & Seasonal Impact

AC Milan began the day on 67 points with 50 goals scored and 32 conceded (goal difference +18). Conceding three and scoring two moves them to 67 points, 52 goals for and 35 against, for a new goal difference of +17. They remain in 4th place, and dropping points at home at this stage tightens the battle for Champions League qualification, reducing their margin for error over the chasing pack.

Atalanta started on 58 points with 50 goals scored and 34 conceded (goal difference +16). This win lifts them to 61 points, with 53 goals for and 36 against, giving a new goal difference of +17. They stay 7th but close the gap on the European spots above them, keeping alive hopes of climbing into the top six and potentially challenging the teams directly above in the final matches of the season.

Lineups & Personnel

AC Milan Actual XI

  • GK: Mike Maignan
  • DF: Koni De Winter, Matteo Gabbia, Strahinja Pavlović
  • MF: Alexis Saelemaekers, Ruben Loftus-Cheek, Samuele Ricci, Adrien Rabiot, Davide Bartesaghi
  • FW: Santiago Giménez, Rafael Leão

Atalanta Actual XI

  • GK: Marco Carnesecchi
  • DF: Giorgio Scalvini, Isak Hien, Sead Kolašinac
  • MF: Davide Zappacosta, Marten de Roon, Éderson, Nicola Zalewski
  • FW: Charles De Ketelaere, Giacomo Raspadori, Nikola Krstović

Expert's Post-Match Verdict

Atalanta’s game plan was built on compact defending and rapid vertical attacks, and it paid off handsomely in the first hour. Despite having less of the ball (43% possession) and generating lower xG (1.08), they were ruthless in exploiting Milan’s structural weaknesses, particularly in wide areas and transitional moments, which justifies describing their attacking as efficient rather than dominant (3 goals from 5 shots on target). Their defensive block, backed by Carnesecchi’s outstanding shot-stopping (8 saves against 9 shots on target), allowed them to absorb long spells of Milan pressure.

Milan, by contrast, produced a strong volume of chances and territorial control (57% possession, xG 1.94, 20 total shots) but lacked precision in both boxes for much of the match. The late surge, aided by aggressive substitutions and added attacking profiles, showed their capacity to overwhelm opponents, yet the damage from a passive and exposed first half proved decisive. Statistically, Milan can argue the scoreline was harsh relative to chance quality, but Atalanta’s early clinical edge and resilience under pressure made the away win a tactically coherent outcome.