AC Milan vs Atalanta: Tactical Breakdown of 3-2 Defeat
AC Milan’s 3-2 home defeat to Atalanta at San Siro was a tactical paradox: Allegri’s side controlled territory, possession and shot volume, yet Palladino’s Atalanta won the structural battle in both boxes and exploited Milan’s early fragility in their 3-5-2.
Executive Summary
Across 90 minutes, Milan produced 20 shots to Atalanta’s 9, held 57% possession and generated higher xG (1.94 vs 1.08). However, Atalanta’s 3-4-2-1, with its aggressive first line and compact back three, punished Milan’s slow defensive rotations and transitions, racing into a 3-0 lead by 51 minutes. Allegri’s second-half reshuffle and the introduction of Christopher Nkunku and Niclas Füllkrug transformed Milan’s attacking dynamics, but the late surge only narrowed the score to 2-3 rather than rescuing a point.
Scoring Sequence & Disciplinary Log
Goals (verified 2-3: Milan 2, Atalanta 3):
- 7' Ederson (Atalanta) — no assist. Atalanta’s box-midfielder attacked a central gap early, capitalising on Milan’s disorganised first-phase rest defence.
- 29' Davide Zappacosta (Atalanta) — assisted by Nikola Krstović. A classic wing-back pattern from Atalanta’s right side, exploiting the space behind Milan’s left flank.
- 51' Giacomo Raspadori (Atalanta) — assisted by Ederson. At 3-0, Atalanta converted a transitional superiority, with Raspadori attacking the inside-left pocket behind Milan’s midfield line.
- 88' Strahinja Pavlović (AC Milan) — assisted by Samuele Ricci. The left-sided centre-back stepped into the box to finish a late-phase attack, reflecting Milan’s shift to a more aggressive back line.
- 90' Christopher Nkunku (AC Milan) — penalty, no assist. Nkunku converted from the spot, capping Milan’s late territorial dominance.
Cards (exact totals: AC Milan 4, Atalanta 3, Total 7), in chronological order:
- 34' Rafael Leão (AC Milan) — Foul
- 70' Isak Hien (Atalanta) — Argument
- 89' Adrien Rabiot (AC Milan) — Argument
- 89' Pervis Estupiñán (AC Milan) — Foul
- 90' Alexis Saelemaekers (AC Milan) — Argument
- 90+5' Nikola Krstović (Atalanta) — Time wasting
- 90+6' Raoul Bellanova (Atalanta) — Foul
Tactical Breakdown & Personnel
Milan’s 3-5-2: structural issues, late correction
Massimiliano Allegri’s 3-5-2 placed Mike Maignan behind a back three of Koni De Winter (right), Matteo Gabbia (central) and Strahinja Pavlović (left). The wing-space was nominally controlled by Alexis Saelemaekers and Davide Bartesaghi, with Samuele Ricci as the central organiser, Adrien Rabiot as the left-sided carrier and Ruben Loftus-Cheek as the right-sided runner. Santiago Giménez and Rafael Leão formed a split-striker pairing.
In possession, Milan’s 3-2 build (Gabbia between Pavlović and De Winter, with Ricci plus Rabiot as the double pivot) aimed to progress through the half-spaces. The 541 Atalanta block they faced, however, consistently shut central lanes and invited Milan to play wide, where Atalanta’s wing-backs could press out without exposing the back three.
Defensively, Milan’s main flaw was in transition coverage. With both wing-backs often advanced, the back three were repeatedly exposed to diagonal runs from Krstović and underlapping movements from Zappacosta and Raspadori. Ederson’s 7' opener stemmed from Milan’s slow counter-press after a lost ball, with Ricci and Rabiot unable to close the central lane quickly enough, leaving Gabbia and Pavlović reacting rather than dictating. The 29' Zappacosta goal underlined a recurring pattern: Bartesaghi was pinned high, Pavlović was dragged into a wide duel, and the near-side midfielder arrived too late to double.
Milan’s attacking metrics (20 shots, 9 on target, xG 1.94) show that the structure did eventually create volume. Yet the quality of those chances before the 70th minute was limited, with Atalanta’s compact block forcing many attempts from outside the box (12 shots from distance). Maignan, with only 2 saves, was more a victim of defensive breakdowns than poor shot-stopping; the “goals prevented” figure (1.1) suggests that across the match he performed broadly to expectation given the quality of chances faced.
The second-half substitutions changed Milan’s attacking profile. At 46', Christopher Nkunku (IN) came on for Ruben Loftus-Cheek (OUT), giving Milan a more vertical, between-the-lines threat. On 58', Zeno Athekame (IN) came on for Koni De Winter (OUT), Niclas Füllkrug (IN) came on for Santiago Giménez (OUT), and Youssouf Fofana (IN) came on for Rafael Leão (OUT). These moves effectively converted Milan into a more aggressive, striker-focused side: Füllkrug as a penalty-box reference, Nkunku drifting into the right half-space, Fofana adding ball-carrying from midfield. When Pervis Estupiñán (IN) replaced Bartesaghi (OUT) at 80', Milan gained a more direct, crossing-oriented left flank.
The late goals reflected this shift. Pavlović’s 88' strike followed Milan’s decision to commit centre-backs into the box in sustained pressure phases. Nkunku’s 90' penalty came as Atalanta’s block sank deeper and began to concede territory and duels inside the area, a sign of fatigue and game-state management.
Atalanta’s 3-4-2-1: efficiency and vertical threat
Raffaele Palladino’s 3-4-2-1, with Marco Carnesecchi in goal behind Giorgio Scalvini, Isak Hien and Sead Kolašinac, focused on verticality and compactness. The wing-backs, Davide Zappacosta and Nicola Zalewski, were key outlets, while Marten de Roon and Ederson anchored central zones. Charles De Ketelaere and Giacomo Raspadori operated as dual 10s behind Nikola Krstović.
Out of possession, Atalanta alternated between a mid-block 5-4-1 and an aggressive 3-4-3 press. The front line curved Milan’s build toward the flanks, and the central pair tracked Ricci and Rabiot closely. Their 17 fouls and 3 yellow cards (with two for Argument and one for Foul, plus a Time wasting booking for Krstović) underline a strategy of controlled disruption, especially once they were ahead.
In possession, Atalanta were ruthlessly efficient: 9 shots, 5 on target, xG 1.08, and 3 goals. The 3-0 lead owed much to their timing of runs and use of the half-spaces. Ederson’s box arrivals and Raspadori’s drifting into pockets between Milan’s lines repeatedly created local overloads against Ricci and Gabbia. After going 3-0 up, Palladino leaned into game management: O. Kossounou (IN) came on for Scalvini (OUT) at 48', R. Bellanova (IN) for Zappacosta (OUT) at 55', an unnamed outgoing player left for H. Ahanor (IN) at 63', and Mario Pašalić (IN) replaced De Ketelaere (OUT) also at 63'. These changes aimed to refresh the back line and wide areas, protect the lead and add defensive work-rate in midfield.
Carnesecchi’s 8 saves and a goals prevented figure of 1.1 underline how central he was to preserving the result as Milan’s pressure mounted. Atalanta’s defensive index on the day — low shot volume conceded inside the box relative to overall attempts, plus strong goalkeeping — outperformed their overall form implied by lower xG.
The Statistical Verdict
The numbers paint a clear tactical story. Milan: 57% possession, 541 passes, 478 accurate (88%), 20 shots (9 on target), xG 1.94, but only 2 goals. Atalanta: 43% possession, 411 passes, 330 accurate (80%), 9 shots (5 on target), xG 1.08, yet 3 goals. Milan’s overall form in chance creation and passing control was strong, but their defensive index — especially in early transition phases — was poor, allowing Atalanta to generate high-value opportunities from relatively few attacks.
Disciplinary data (Milan 4 yellows, Atalanta 3) confirms the shift in match rhythm: Milan’s late bookings for Argument and Foul reflected frustration and high-tempo chasing, while Atalanta’s Time wasting and Foul cards in added time were typical of a side protecting a narrow lead. Ultimately, Atalanta’s structural clarity, early exploitation of Milan’s back-three vulnerabilities and elite goalkeeping outweighed Milan’s statistical dominance, delivering a 3-2 away win that belied the balance of play.






