Table of Contents
Skip to content
MILAN, ITALY – MAY 24: Alexis Saelemaekers of AC Milan dejected after Juan Rodriguez of Cagliari (not pictured) scores his team’s second goal during the Serie A match between AC Milan and Cagliari Calcio at the Giuseppe Meazza Stadium on May 24, 2026 in Milan, Italy. (Photo by Marco Luzzani/Getty Images)
Milan collapsed after taking the early lead, losing to a Cagliari side that had nothing to play for, and throwing away a Champions League ticket.
The Rossoneri had stuttered badly in recent weeks, but the win away to Genoa and a Juventus slip-up meant that a victory here would guarantee a top four finish. Tension remained sky high off the field, with reports of power struggles behind the scenes. Rafael Leao, Alexis Saelemaekers and Pervis Estupinan all returned from suspension, but only the Belgian was chosen to start, with Leao and Christian Pulisic benched. The Sardinians secured safety last week, leaving behind Semih Kilicsoy, Michael Folorunsho, Leonardo Pavoletti and Riyad Idrissi.
- Read Football Italia Ad-Free and get access to Exclusive News and Content – Free Trial – Click Here
See how it all unfolded on the Liveblog.
It took under two minutes to break the deadlock, as Santiago Gimenez knocked down a long Fikayo Tomori ball and Alexis Saelemaekers let it bounce before sweeping in from close range.
However, Cagliari fought back, first with Mike Maignan’s acrobatic save to push the Gianluca Gaetano curler out of the far top corner. On the resulting corner kick, Yerry Mina nodded it down and Gennaro Borrelli was quickest to react on the rebound from six yards.
Nkunku should’ve done better with a weak finish on the Saelemaekers lay-off, prodding it straight at Elia Caprile, with the same end result for Gimenez and a Youssouf Fofana header.
Maignan risked fumbling a cross, rescued by Tomori, while Gimenez couldn’t finish off the Adrien Rabiot roll across.
Gaetano almost scored a remarkable goal on the stroke of half-time, flicking the ball over Fofana only to then fire over the bar.
Incredibly, Cagliari took the lead at San Siro from a set play. The free kick was knocked down for Borrelli, forcing a tricky Maignan save at the near post, then Juan Rodriguez nodded in the loose ball from six yards.
Milan were out of the Champions League with this result and Como winning away to Cremonese, so threw on Luka Modric and Niclas Fullkrug.
Christian Pulisic came close with a diving header that bounced wide, and Rafael Leao was finally introduced with 22 minutes left to play.
It was Cagliari who came closest to adding another goal, as Maignan had to make a double save on Borrelli first, then the Gabriele Zappa follow-up at the near post.
Matteo Gabbia made a decisive block on Michel Adopo’s finish, then on the corner Gianluca Gaetano stung Maignan’s gloves with a thunderbolt.
Modric flicked his effort wide and Fullkrug couldn’t keep his headers on target, while Maignan had to deny Mendy one-on-one after a counter-attack.
The final whistle blew and Milan had blown their chance at Champions League football to deafening jeers from the fans. They lost three of the last four games.
Milan 1-2 Cagliari
Saelemaekers 2 (M), Borrelli 20 (C), Rodriguez 57 (C)
24-05-2026 19:45
MatchDay 38
San Siro Stadium (Stadio Giuseppe Meazza)MILCAG1 – 2
Player statistic
| Alexis Saelemaekers(Assist: Santiago Giménez) | 2' |
| 2' | Zé Pedro |
| 20' | Gennaro Borrelli |
| Strahinja Pavlovic | 56' |
| 57' | Juan Rodríguez |
| Mike Maignan | 58' |
| 90+6' | Ibrahim Sulemana |
Match statistic
48
Possession %
52
16
Total shots
25
3
Shots on target
10
11
Shots off target
8
2
Blocked shots
7
5
Corners
5
3
Offsides
0
8
Fouls
9
MIL
CAG
Starting lineups
16
Mike Maignan
Goalkeeper
33
Davide Bartesaghi
Defender
23
Fikayo Tomori
Defender
61′
46
Matteo Gabbia
Defender
31
Strahinja Pavlovic
Defender
12
Adrien Rabiot
Midfielder
56
Alexis Saelemaekers
Midfielder
30
Ardon Jashari
Midfielder
62′
19
Youssouf Fofana
Midfielder
68′
18
Christopher Nkunku
Attacker
61′
7
Santiago Giménez
Attacker
46′
1
Elia Caprile
Goalkeeper
33
Adam Obert
Defender
28
Gabriele Zappa
Defender
15
Juan Rodríguez
Defender
62′
26
Yerry Mina
Defender
32
Zé Pedro
Defender
63′
14
Alessandro Deiola
Midfielder
74′
10
Gianluca Gaetano
Midfielder
8
Michel Adopo
Midfielder
29
Gennaro Borrelli
Attacker
74′
94
Sebastiano Esposito
Attacker
90′
Substitutes
4
Samuele Ricci
Midfielder
5
Koni De Winter
Defender
8
Ruben Loftus-Cheek
Midfielder
2
Pervis Estupiñán
Defender
96
Lorenzo Torriani
Goalkeeper
99
Jacopo Sardo
Midfielder
34
Valeri Vladimirov
Defender
37
Matteo Pittarella
Goalkeeper
25
Cheveyo Balentien
Attacker
27
David Odogu
Defender
11
Christian Pulisic
Attacker
46′
9
Niclas Füllkrug
Attacker
61′
24
Zachary Athekame
Defender
61′
14
Luka Modric
Midfielder
62′
10
Rafael Leão
Attacker
68′
19
Andrea Belotti
Attacker
4
Luca Mazzitelli
Midfielder
24
Giuseppe Ciocci
Goalkeeper
12
Alen Sherri
Goalkeeper
36
Nicola Grandu
Midfielder
38
Ivan Sulev
Midfielder
37
Yael Trepy
Attacker
20
Agustín Albarracín
Midfielder
18
Othniel Raterink
Midfielder
41
Alessandro Sabino Russo
Midfielder
22
Alberto Dossena
Defender
62′
2
Marco Palestra
Defender
63′
25
Ibrahim Sulemana
Midfielder
74′
31
Paul Mendy
Attacker
74′
17
Mattia Felici
Attacker
90′