Cagliari came to San Siro and left with three points, and the margin was constructed in a 37-minute window that exposed everything wrong with Massimiliano Allegri's AC Milan: an early lead surrendered before the half-hour, a second goal conceded eleven minutes into the second half, and a reactive substitution pattern that confirmed the hosts had no answer to a visiting side playing with genuine conviction.

Alexis Saelemaekers, the Milan midfielder, put the home side ahead at the second minute, finishing with an assist from Santiago Giménez to make it 1-0. The opener arrived so early that it might have unsettled Cagliari's structure — instead it seemed to settle them. Zé Pedro, the Cagliari defender, had already collected a yellow card in that same second minute, yet Fabio Pisacane's side absorbed the early shock and grew into the match. Gennaro Borrelli, Cagliari's forward, levelled at the 20th minute to make it 1-1, and the equaliser shifted the psychological weight of the afternoon entirely. Milan had scored first and still went into half-time level, which told its own story about the hosts' inability to manage a lead.

The decisive moment came at the 57th minute. Juan Rodríguez, Cagliari's defender, put the visitors ahead at 2-1 — a lead-taking goal that arrived just eleven minutes into the second half and one minute after Milan's Strahinja Pavlović had been booked. The timing was precise and damaging. Allegri responded immediately: three substitutions arrived between the 61st and 62nd minutes, with Niclas Fullkrug, Zachary Athekame, and Luka Modrić all introduced. A fourth change, Rafael Leão, followed at the 68th minute. Four substitutions in seven minutes is not tactical rotation; it is a team trying to find a shape it had lost. Cagliari's own response to Rodríguez's goal was equally telling — the scorer himself was withdrawn at the 62nd minute, replaced by Alberto Dossena, a substitution that protected the lead rather than chased a third.

Rodríguez's winner was the product of a Cagliari side that has found consistency in the final weeks of the season. In their last five matches including this one, Pisacane's team collected ten points, winning three and drawing one. The last three fixtures brought six points from two wins. That is the form of a team with momentum, and it showed in the composure with which they managed the final half-hour at San Siro after taking the lead.

Milan's problems were structural before they were individual. Allegri's side has taken four points from their last five matches, conceding eight goals in that span. The last three fixtures — a home loss to Atalanta, a win at Genoa, and now this defeat at home — produced six goals conceded against five scored, a balance that flatters the attack and obscures how exposed the defence has been. The booking of Pavlović at the 56th minute, followed immediately by Maignan's yellow at the 58th, suggested a team under pressure and reacting to events rather than controlling them. Giménez, who had provided the assist for the opener, was substituted at half-time — a fact the data records without explanation, and one that removed Milan's most direct link between midfield and attack at the moment the match was still level.

Cagliari's five-match form window — ten points, three wins — places them among the more productive sides in the division over that period, and this result at San Siro is the kind of away performance that defines a season's final chapter. For Milan, the trajectory is harder to read charitably: one win from their last five, eight goals conceded, and a home defeat to a side that came to the Meazza without fear.

A month from now, what will remain about this match is not the early Saelemaekers goal but the 37 minutes between Borrelli's equaliser and the final whistle — a period in which Cagliari were the better team, scored the winner, and never looked like conceding it.