Was caught wrong-footed by El Shaarawy's early strike, but was otherwise well guarded by the backline and was equal to anything Milan could muster from deep. Brilliant in extra time to protect a narrow lead.
Was caught out by Boateng early on and was made to pay, but recovered to restrict Milan's movement in the area for the vast majority of the 90 minutes.
Always attentive on the left hand side of the pitch, and impressive in shackling Emanuelson in an exemplary defensive performance.
A typically understated yet commanding performance from the defender in the middle of the Old Lady back three. Very rarely caught out either on the ground or in the air.
Got forward efficiently and combined well with Giovinco, before suffering when the youngster was withdrawn. Taken off himself in the dying minutes of normal time.
Harried, marked and hassled his midfield opponents to perfection, ensuring that Juve enjoyed a clear dominance in the centre of the pitch.
Played a more central, withdrawn role than usual, supporting Lichtsteiner effectively on the right side and disrupting Milan's rhythm.
Was a late inclusion in place of Pirlo, and while he perhaps did not show the same fitness as the veteran master, was a constant presence in the middle of the park.
Another deeply frustrating performance both for the forward and the home support. Gets into all the right positions, but the finishing was once again nowhere to be seen.
Seemed unsure of his role in what appeared to be an attacking front three for the home side, drifting across the pitch while failing to make a telling impact - until his surging break decided proceedings.
Involved in almost everything positive that emanated from the Juve attack. Just needed a little more precision in front of goal to add to his solitary strike.
Had little chance to stop a wonderful free kick from Giovinco, but came to Milan's rescue with a brilliant stop in an almost identical situation.
M. De Sciglio
Held firm against a dynamic home attack, and was not overwhelmed dealing with the likes of Lichtsteiner and Vidal when play switched to his flank.
Looked dangerous when he broke down the right, but needed to play more conservatively in order to bolster a shaky backline.
Looked uncertain and unsure in the centre of defence. A wayward pass and tackle cost Milan an equaliser, and he was lucky not to be punished again by Giovinco after another mistake.
Seemed more interested in riling the Juve ranks than in actually defending and was extremely lucky not to have received a red card in a bizarre first-half performance.
Battled in vain to overcome a mobile, tenacious Juve effort in the centre, which limited his opportunities to break forward and make a telling impact.
Was overwhelmed in the opening stages of the match, but bounced back to prove a calming influence for Milan.
Started brightly but faded out of the game and made little impact as Milan looked to reimpose themselves on the cup tie.
Stood out with one excellent break that led to El Shaarawy's opener. Defensively, however, he left much to be desired as Juve dominated in the middle.
Made a vital contribution early on with an intelligent stepover, but it was a rare moment of class in a display that too often lacked precision in the final third.
S. El Shaarawy
Took his goal with customary class, and popped up across the field as he strived to be the driving force behind his side's attacking efforts.
P. De Ceglie
Came in for Lichtsteiner and settled instantly into the match, providing a valuable set of fresh legs for the extra 30 minutes.
Added an air of calm and finesse in possession after replacing Marrone.
Put an indifferent cameo against Sampdoria at the weekend behind him with an instinctive finish that proved crucial in extra time.