AC Milan hosted Juventus at San Siro on Sunday evening and the scoreline — 0-0 — was shaped less by defensive excellence than by a VAR intervention that erased the one moment either side came close to breaking the deadlock.

The match's pivot arrived in the 36th minute, when a Juventus goal was ruled out for offside following a VAR review. The decision came fifteen minutes after the first yellow card of the afternoon and two minutes before a second booking, a compressed sequence that hardened the contest's already cautious character. Neither side had manufactured a clean scoring opportunity before the disallowed goal, and neither would manufacture one convincingly after it. The substitutions began at half-time — both coaches made their first changes at the 46th minute — and accelerated through the final half-hour, with four players replaced simultaneously at the 80th mark. By the time the fifth yellow card was shown in the 86th minute, the match had long since settled into a negotiated stalemate.

The highest-rated performer on the pitch carried a 7.9, playing all 90 minutes without contributing a goal or an assist. That number, in a goalless draw, tells you something precise: the performance was built on positioning, defensive intervention, and ball retention under pressure — the kind of contribution that shapes a result without appearing in the attacking ledger. Whoever earned that rating — the data does not assign it by name — did so by keeping their side organised in the passages immediately following the disallowed goal, when the match was at its most unsettled and the yellow-card count was climbing.

AC Milan's difficulty was structural as much as situational. Allegri's side has collected just four points from its last three matches, conceding three goals across that window while scoring one. The 0-3 home defeat to Udinese on April 11 still casts a shadow over the Rossoneri's defensive shape, and Sunday's clean sheet — achieved against a Juventus attack that has scored only six goals across its last five fixtures — offers partial comfort at best. Milan's starting eleven included AC Milan midfielder Adrien Rabiot and Luka Modrić in central positions, with Rafael Leão leading the attack, yet the side generated nothing that required a save of note. When a team's most recent home result before this fixture was a three-goal defeat, a goalless draw against in-form opposition is not a recovery — it is a postponement of the reckoning.

Luciano Spalletti's Juventus arrive at this result from the stronger position. The Bianconeri collected 11 points from a possible 15 across their last five matches while conceding just one goal across that run. The disallowed goal was the closest they came to converting that defensive solidity into three points, and the five yellow cards their players accumulated — three to Juventus, two to Milan — suggest Spalletti's side was willing to accept physical attrition to protect their recent form. Jonathan David led Juventus's attack alongside Francisco Conceição and Jeremie Boga, but the clean sheet on the road, their third in five matches, reinforces that this Juventus is being built from the back.

The point moves Juventus's unbeaten run to five matches and maintains the pressure they have applied through April. For Milan, the draw adds one point to a five-match return of seven, a figure that reflects a side oscillating between competence and collapse rather than building toward anything coherent. The head-to-head record between these clubs now reads two meetings, two draws — a symmetry that flatters neither.

A month from now, this match will be remembered as the fixture in which Juventus's momentum survived contact with a hostile venue, and Milan's season continued to drift without a result substantial enough to change its direction.