Juventus and AC Milan drew 1-1 at the Allianz Stadium on Sunday evening, a result shaped entirely by what happened in the final half-hour: three AC Milan substitutions at 61', a lead-taking goal seven minutes later, and then a Juventus equalizer deep into stoppage time that erased what had looked like a Milan victory.

The decisive sequence began when AC Milan coach Ruben Amorim made three simultaneous changes at 61', withdrawing Alexis Saelemaekers, Adrien Rabiot, and Diego Moreira and introducing Ruben Loftus-Cheek, Samuel Chukwueze, and Alphadjo Cissè. The gamble paid almost immediately. At 68', Cissè — on the pitch for seven minutes — converted from a Chukwueze assist to give Milan the lead. It was the first goal of the match, and it arrived precisely because Amorim's triple change altered the texture of the game before Juventus coach Luciano Spalletti had fully recalibrated his own bench. Spalletti had already made two substitutions of his own at 64', sending on Jeremie Boga and Teun Koopmeiners, but it was the third Juventus change — Nick Woltemade on for Douglas Luiz at 76' — that signalled a more urgent restructuring.

The equalizer came at 90+2', and it arrived through the most direct of mechanisms: Koopmeiners, who had entered as a substitute, provided the assist, and Federico Gatti — himself only on the pitch since 88' — headed or finished to level the score. That Gatti scored within two minutes of coming on, from a ball delivered by another substitute, underlines how thoroughly the closing stages belonged to the bench rather than the starting XI. The goal was not a winner; it was an equalizer, and the distinction matters. Juventus did not complete a comeback in the conventional sense — they were not winning before going behind — but they did recover from a position that, with the clock past 90 minutes, had looked terminal.

Gatti's contribution demands a closer look. Federico Gatti, the Juventus defender, entered at 88' as one of two late changes alongside Edon Zhegrova. His goal at 90+2' was assisted by Koopmeiners, and the sequence — substitute feeds substitute for a goal in the second minute of added time — is the kind of moment that defines a season's character as much as any tactical system. Gatti then collected a yellow card at 90+6', a detail that suggests the closing moments were fractious, but the goal stands regardless.

For Milan, the frustration is specific. Cissè's lead-taking goal at 68' was the product of intelligent bench management, and for more than twenty minutes it appeared sufficient. The Rossoneri finished the match with three yellow cards — Pervis Estupiñán at 79', Koni De Winter at 90+2', and Cissè himself at 90+6' — which points to a side under pressure in the closing stages rather than one controlling the game. Luka Modrić was withdrawn at 82' for Ardon Jashari, and Mario Gila came off at 88' for Filippo Terracciano, changes that suggest Amorim was managing the final minutes rather than pressing for a second goal. The failure to protect a lead that had stood for over twenty minutes is the one question this result leaves unanswered.

Both clubs arrived at the Allianz Stadium with identical records: two wins from two, six points apiece. In their last three matches — the only window available — Juventus have collected seven points, conceding just once across those games until tonight. Milan's last three show the same seven-point return, with five goals scored and two conceded. The draw keeps both sides on seven points from three matches, and the symmetry of their trajectories makes the result feel appropriate even if neither side will entirely accept it.

A month from now, this match will be remembered as the night Juventus's bench rescued a point that Milan's bench had taken away — and as evidence that, in this fixture, neither side yet has the margin to win when it matters most.