AC Milan's Shocking Finale Against Cagliari
Under the lights of Stadio Giuseppe Meazza, the final chapter of AC Milan’s Serie A season closed with a jolt rather than a celebration. In a campaign that had delivered a Europa League place and a 5th-place finish on 70 points, losing 2–1 at home to 14th-placed Cagliari felt like a narrative twist no one in red and black had scripted.
Heading into this game, Milan’s seasonal DNA was clear: a robust, possession-first side, comfortable in a back three and defined by balance rather than chaos. Overall they scored 53 and conceded 35, a goal difference of +18 across 38 matches. At home they averaged 1.3 goals for and 1.1 against; on their travels they were even more efficient, with 1.5 goals for and 0.7 against. Cagliari, by contrast, lived on the edge. Overall they scored 40 and conceded 53, a goal difference of -13, and away from home they carried just 0.9 goals for and 1.6 against per match. Yet at San Siro, it was Fabio Pisacane’s side that imposed the final word.
I. The Big Picture – Mirror Formations, Divergent Intentions
Both coaches went like-for-like on the board: a 3-5-2 for Massimiliano Allegri’s Milan, mirrored by Pisacane’s Cagliari. But the same numbers hid very different ideas.
Milan’s back three of F. Tomori, M. Gabbia and S. Pavlovic was less about deep defending and more about building platforms. With D. Bartesaghi and A. Saelemaekers wide, and a central trio of Y. Fofana, A. Jashari and A. Rabiot, the structure was designed to suffocate Cagliari’s transitions and feed the front pair of S. Gimenez and C. Nkunku between the lines.
Cagliari’s 3-5-2, anchored by Y. Mina between J. Pedro and J. Rodriguez, was more pragmatic. Wing-backs G. Zappa and A. Obert had to walk a tightrope: offer width in transition without leaving Mina exposed against Milan’s dual forwards. In front of them, M. Adopo, G. Gaetano and A. Deiola were tasked with crowding the central lane and denying Milan the vertical passes that power Allegri’s 3-5-2.
In total this campaign, Milan had relied heavily on that shape, using it 34 times; Cagliari, for their part, had turned to 3-5-2 in 18 league matches, but their season was defined by tactical restlessness, cycling through multiple back-four and back-five systems. At San Siro, though, they leaned into symmetry and bet on discipline.
II. Tactical Voids – Absences and the Edge of Discipline
If Milan arrived close to full strength, Cagliari did not. A cluster of absences – M. Folorunsho (muscle injury), R. Idrissi (knee injury), S. Kilicsoy (personal reasons), J. Liteta (thigh injury) and L. Pavoletti (knee injury) – stripped Pisacane of rotation options, especially in attack and in the half-spaces. It placed greater creative and physical responsibility on S. Esposito, G. Gaetano and A. Obert to carry the ball, win duels and relieve pressure.
Discipline was always going to be a sub-plot. Across the season, Milan’s yellow-card pattern showed a pronounced late-game surge: 25.00% of their bookings arrived between 76–90 minutes, with another 14.06% in added time (91–105). Cagliari’s profile was similar but sharper: 27.16% of their yellows came between 76–90, and all of their red cards – 100.00% – were shown in that same 76–90 window.
That statistical backdrop framed the final quarter of this match. As Milan chased, they were entering the period where both teams historically lost composure. Allegri’s side, however, managed to avoid a dismissal; Cagliari walked the same tightrope they had all season but stayed just on the right side of the line.
III. Key Matchups – Hunter vs Shield, Engine Room vs Enforcer
The “Hunter vs Shield” narrative revolved around Milan’s attacking potential and Cagliari’s fragile away defence. On their travels, Cagliari conceded 30 goals in 19 games, an average of 1.6 per match. Milan at home were not explosive but steady: 25 goals in 19, at 1.3 per match. The expectation was clear: Milan’s front line, with the threat of bench weapons like Rafael Leão and C. Pulisic, should have been able to grind Cagliari down.
Leão’s league numbers underlined his status as Milan’s primary hunter: 9 goals and 3 assists in 29 appearances, with 45 shots (24 on target) and 23 key passes. Pulisic, with 8 goals and 4 assists, 41 shots (25 on target) and 38 key passes, offered a different profile: a high-volume chance creator who also arrives in scoring positions. Yet both began on the bench, leaving S. Gimenez and C. Nkunku to shoulder the initial burden.
For Cagliari, the Shield was collective rather than individual. Y. Mina’s presence in the centre of the back three provided aerial dominance and aggression, but the real hinge was A. Obert. Over the season, Obert combined 68 tackles, 18 successful blocks and 42 interceptions with 9 yellow cards and 1 yellow-red. He is both stopper and risk factor, a defender who steps out to engage and lives permanently on the disciplinary edge. At San Siro, his role was to meet Milan’s wide overloads early, disrupt combinations with Saelemaekers and Bartesaghi, and protect Mina from being dragged into wide channels.
In the “Engine Room” duel, Milan’s trio of Fofana, Jashari and Rabiot faced Cagliari’s M. Adopo, G. Gaetano and A. Deiola, with Esposito floating as a creative hybrid. Esposito’s season tells his story: in total this campaign he produced 7 goals and 5 assists, with 1003 passes and 71 key passes at an accuracy of 75. He also embraced the dirty work, with 56 tackles, 4 successful blocks and 20 interceptions, plus 56 fouls drawn and 45 committed. He is simultaneously playmaker and disruptor, the player who could both win the ball and immediately turn it into a progressive action.
Against Milan’s midfield, Esposito’s duality was crucial. When Cagliari dropped into a low block, he became the first outlet for counters, linking with G. Borrelli and his fellow forward. When they pressed higher, he stepped into passing lanes, trying to break Milan’s rhythm and force them into the wide areas where Obert and Zappa could engage.
IV. Statistical Prognosis – xG Logic vs Final-Weekend Chaos
If we map the season-long numbers onto this fixture, the xG logic would have leaned towards a controlled Milan win. A home side averaging 1.3 goals for and 1.1 against, with a solid +18 overall goal difference, facing an away team with 0.9 goals for and 1.6 against, and a -13 overall goal difference, should usually tilt the probability scale towards the hosts.
Milan’s defensive metrics – just 35 goals conceded in total, with 21 at home – suggested that even if Cagliari found a way through once, repeating the feat would be unlikely. Cagliari’s attacking record on their travels, 18 goals in 19 matches, hinted at a side that often needed set-pieces, moments of chaos or individual quality from Esposito to break games open.
Yet final-day football often ignores probability. Following this result, the numbers remain the same on paper, but the story they tell is different. Milan, despite a season of control, were undone by a Cagliari side that leaned into its volatility, maximised its key individuals and navigated the disciplinary minefield that has so often cost them late in matches.
In the end, this was a match where tactical symmetry produced emotional asymmetry. The side with the cleaner season profile lost; the one with the messier statistical footprint walked away with a signature away win. For Milan, the campaign still ends with European football secured. For Cagliari, this night in Milan becomes a reference point: proof that even a team with a negative goal difference and a fragile away record can bend the narrative when structure, discipline and their Engine Room align.


