Made a couple of routine stops from El Shaarawy in the first half and, overall, had very little to deal with other than speculative shots from distance.
Initially seemed like he might be given the runaround by El Shaarawy but he quickly imposed his authority on the talented 20-year-old. Another fine showing from one of Juve's players of the season.
A fantastic outlet for Juve in the opening half. Indeed, it was no surprise that all of the hosts' best attacks came down the right-hand side. However, Lichsteiner's final ball was not up to scratch and he did not carry the same attacking threat after the break.
Bailed out Bonucci by making a splendidly timed challenge on Pazzini, after the forward had dispossessed his central defensive colleague. Beaten all ends up by Robinho at one point, but had the Brazilian in his pocket for the most part.
Had his pocket picked by Pazzini as he tried to usher the ball out of play at the tail end of the first half but that was the one error of judgement in an otherwise impeccable performance.
Once again selected to play in behind Vucinic but he struggled dreadfully to get into the game. Marchisio is a fine player but he is not a No.10.
Very nearly opened the scoring against his old club with a deflected free kick but was terribly lucky that a subsequent stray pass on the edge of his own area went to Ambrosini, rather than another Milan player more likely to punish such sloppiness. Ran the game after the break, though.
Very quiet from an attacking perspective during the first half, solely because he had his hands full with Abate. However, was slightly more menacing in the second period, the Ghanaian winning the penalty from which Vidal opened the scoring.
Not his usual dynamic self, with Juve surprisingly subdued during the first half, but picked up dramatically after the break and netted the game's decisive goal with a clinically executed penalty.
Always looking to get forward, the French youngster went close with a spectacular overhead kick on 16 minutes. Continued to threaten thereafter, while at the same time sweeping up well in midfield.
Did not shy away from mixing it with Mexes and Zapata, but he just did not manage to bring his midfielders into the game. Also fluffed a free header from a Pirlo free.
Changed direction wonderfully well to keep out a deflected free kick from Pirlo some eight minutes in but was forced off just moments later through injury.
Worryingly out-muscled by Vucinic at one point, while his distribution was erratic. However, he dug in and eventually got to grips with Juve's lone striker.
Typified Milan's attacking intent by pinning the attack-minded Asamoah back inside his own half for the majority of the opening 45 minutes. however, his final ball repeatedly let him down before he gifted Juve the three points by misjudging the ball that led to the penalty.
Made three crucial blocks inside the opening six minutes alone of a solid performance. However, his propensity for picking up yellow cards remains a worry.
Given all sorts of problems by the rampaging Lichtsteiner but stuck to his task well and got the better of the Swiss in the second period.
Covered plenty of ground and used the ball sensibly and intelligently, playing a key role in Milan's dominance of possession in the first half; all that was missing was a killer ball.
Instigated a couple of attacks by breaking up play well in the middle of the park, while at the same time showing a desire to try his luck from distance. However, did not come back out for the second half after picking up a knock just before the break.
A powerful burst from midfield led to El Shaarawy testing Buffon early on, while he also threatened an equaliser towards the end after a great run down the right. However, he played on the periphery of the game for far too long.
Held the ball up well and was more than happy to try to mix it with Bonucci, whom he robbed of possession at one point. However, never got a clear sight of goal.
S. El Shaarawy
Looked a threat every time he built up a head of steam and repeatedly backed himself from distance, testing Buffon twice in the opening quarter. Also showed an admirable willingness to track back but did not get a look-in in the second half.
Retained his place in the starting line-up despite an anonymous display against Napoli last weekend and was lively enough in the first half, getting a couple of shots away as well as hitting the side netting with snap volley. Faded badly in the second half, though.
Introduced into the action with less than 15 minutes on the clock, following the injury-enforced withdrawal of Abbiati, and while he made a couple of decent stops, it was he who gave away the penalty that decide the game.
Took over in midfield from the injured Ambrosini during the interval.
Thrown on for the final 20 minutes.