Match North Logo

AC Milan Stumbles Against Cagliari in Serie A Finale

Under the late spring lights of Stadio Giuseppe Meazza, a season’s worth of tactical habits crystallised into a single, jarring truth for AC Milan. In the final round of the 2025 Serie A campaign, the side that had spent the year building a Europa League platform stumbled to a 2-1 home defeat against a Cagliari team that arrived as underdogs but left as a fully formed, streetwise unit.

Following this result, the table tells a stark story. Milan close the season 5th with 70 points and a goal difference of 18, built on 53 goals scored and 35 conceded overall. Cagliari finish 14th with 43 points and a goal difference of -13, their 40 goals for outweighed by 53 against. Yet on this night, the visitors inverted the hierarchy.

I. The Big Picture – Mirrors of 3-5-2

Both coaches doubled down on a 3-5-2, but with contrasting intentions.

Massimiliano Allegri’s Milan aligned in a back three of Fikayo Tomori, Matteo Gabbia and Strahinja Pavlovic in front of Mike Maignan. The wing corridors belonged to Alexis Saelemaekers and Davide Bartesaghi, with Youssouf Fofana, Ardon Jashari and Adrien Rabiot forming a central trio. Up front, Santiago Gimenez and Christopher Nkunku were tasked with turning Milan’s overall attacking average of 1.4 goals per game into a decisive home flourish.

Fabio Pisacane mirrored the shape but not the mindset. Elia Caprile was shielded by a defensive trio of J. Pedro, Yerry Mina and J. Rodriguez. The midfield five — Gabriele Zappa, Michel Adopo, Gianluca Gaetano, Alessandro Deiola and Adam Obert — was less about possession and more about disruption and verticality. Ahead of them, Gianluca Borrelli and Sebastiano Esposito formed a front two that embodied Cagliari’s season-long balance between struggle and threat: only 1.1 goals scored per game overall, but enough cutting edge to win 11 matches.

Heading into this game, Milan’s home numbers framed them as favourites: 9 wins, 5 draws and 5 defeats at San Siro, with 25 goals scored and 21 conceded. On their travels, Cagliari had been fragile — just 4 away wins, 6 draws and 9 defeats, conceding 30 goals away from home at an average of 1.6 per game. The script said Milan control, Cagliari suffer. The pitch chose a different narrative.

II. Tactical Voids and the Discipline Battle

If Cagliari’s season has been about survival through attrition, the missing names underlined it. M. Folorunsho (muscle injury), R. Idrissi (knee injury), S. Kilicsoy (personal reasons), J. Liteta (thigh injury) and L. Pavoletti (knee injury) were all listed as “Missing Fixture”, stripping Pisacane of rotation options and late-game variety in attack. The bench leaned on utility rather than star power: Andrea Belotti, L. Mazzitelli, A. Dossena and a cluster of young or fringe players.

Milan, by contrast, had an embarrassment of riches in reserve. Luka Modric, Ruben Loftus-Cheek, Pervis Estupiñán, Sandro Ricci, N. Fullkrug, Christian Pulisic and Rafael Leão all sat ready to tilt the match. This depth mirrored Milan’s season-long stability: 15 clean sheets overall and only 0.9 goals conceded per game in total, with Maignan backed by a defence used to controlling space rather than firefighting.

Disciplinary trends hinted at where the game might fray. Across the season, Milan’s yellow-card distribution shows a late-game surge: 25.00% of their yellows arrived between 76-90 minutes, part of a pattern of emotional spikes as matches close. Cagliari’s profile is similar but even more volatile: 27.16% of their yellows fall in that same 76-90 window, and every single one of their red cards — 100.00% — has come between 76-90 minutes. This is a team that lives on the edge when fatigue and pressure peak.

III. Key Matchups – Hunter vs Shield, Engine Room vs Enforcer

The “Hunter vs Shield” storyline sat largely on the bench. Rafael Leão, with 9 league goals and 3 assists in 29 appearances, and Pulisic, with 8 goals and 4 assists, represent Milan’s most consistent end-product. Leão’s 45 shots (24 on target) and Pulisic’s 41 (25 on target) define a wide threat that has underpinned Milan’s 1.5 away and 1.3 home goals per game. Yet here, Allegri chose to start without either, trusting Gimenez and Nkunku to carry the load.

On the other side, Cagliari’s attacking spearhead was Esposito. Officially listed as a midfielder but deployed here as a forward, he arrived with 7 goals and 5 assists, plus 71 key passes and 1003 completed passes at 75% accuracy. He is both finisher and creator, the fulcrum of Cagliari’s transition game. His duel volume — 312 total, 149 won — speaks to a player who relishes contact and chaos.

Opposite him, Milan’s shield came from a collective. Tomori’s aggression, Gabbia’s positioning and Pavlovic’s left-footed balance were meant to funnel Esposito away from central spaces. Behind them, Maignan anchored a unit that had conceded only 14 goals away and 21 at home, with 7 home clean sheets.

In the “Engine Room” duel, Fofana, Jashari and Rabiot were set against Deiola, Adopo and Gaetano. Milan’s trio was designed to impose tempo, recycling possession and feeding the front two, while Cagliari’s unit aimed to compress central zones and spring Esposito and Borrelli. Adam Obert, a defender by trade pushed into the left midfield lane, added bite: over the season he has committed 40 fouls, taken 9 yellow cards (plus 1 yellow-red), and won 128 of 239 duels. He is Cagliari’s enforcer in all but name.

IV. Statistical Prognosis and What the Scoreline Says

On the numbers, Milan should have had enough control to avoid this kind of collapse. Overall they score 1.4 goals per game and concede 0.9, with a positive goal difference of 18 built on compact defensive phases and reliable penalty execution — 7 penalties taken, 7 scored, 100.00% conversion with no misses. Cagliari, by contrast, sit at 1.1 goals scored and 1.4 conceded per game, their -13 goal difference reflecting structural fragility. Even their penalty record, while perfect (2 scored from 2, no misses), comes in a far lower volume.

Yet the 2-1 Cagliari win exposes the fragility beneath Milan’s numbers. The mirrored 3-5-2s turned the game into a battle of who could better exploit the half-spaces and transitional moments. Cagliari, used to suffering — 17 defeats overall, 9 away — were comfortable without the ball, compressing central lanes and trusting Esposito’s ability to turn sparse touches into high-value actions. Milan, despite their depth, lacked incision from the start and were forced to chase a game that their season profile says they usually control.

From an xG lens, even without explicit values, the pattern is clear: Milan’s structure is designed to accumulate steady, medium-quality chances over 90 minutes, while Cagliari’s model leans on fewer but sharper transition opportunities. When the side with the better defensive baseline (Milan) concedes twice at home, the implication is that Cagliari’s shot quality — and Esposito’s influence — outweighed Milan’s volume.

In narrative terms, this finale is a warning for Milan’s European ambitions. The squad is deep, the numbers are strong, and the Europa League ticket is secured, but the defeat underlines a vulnerability against compact, counter-punching 3-5-2s. For Cagliari, survival at 14th with a statement win in Milan suggests that, with Esposito as their creative axis and Obert as their hard edge, there is a more stable mid-table identity waiting to be built from this chaotic, but ultimately successful, campaign.