Juventus knocked 10-man Milan out of the Coppa Italia after a 2-1 victory and go on to face Napoli in the semi-final.
Juventus and Napoli will meet in the Coppa Italia semi-final in Turin on March 1 and at the Stadio San Paolo on April 5. By a curious twist of fate, these sides will also clash in Serie A on the weekend of April 2 in Naples.
The Rossoneri were seeking a seasonal hat-trick, having already beaten Juve in Serie A and the Supercoppa Italiana, while they lost the Coppa Italia Final in extra time in May 2016. That was also the last game played by Cristian Zapata, who got a surprise start here, as Mattia De Sciglio and Davide Calabria were injured. Max Allegri used his all-attack 4-2-3-1 system for the second game running.
Juventus opened the scoring with their first attempt, as Kwadwo Asamoah’s cross was flicked on by Juan Cuadrado for unmarked Paulo Dybala to volley in from 10 yards with his weaker right foot. Remarkably, it was the seventh time in the last nine games that Milan had conceded the opener.
There was almost an identical goal six minutes later, but this time Luca Antonelli got a decisive block on Cuadrado’s volley from another Asamoah cross.
Asamoah’s mazy run was cut short on the edge of the box and from that free kick Miralem Pjanic curled one of his trademark finishes into the near top corner to double Juve’s lead.
Sami Khedira had the ball in the net, but was offside when Gianluigi Donnarumma parried Gonzalo Higuain’s shot.
Milan finally had an opportunity just before half-time, but Carlos Bacca and Andrea Bertolacci both went for the Suso free kick and collided.
The Rossoneri did get back into it with a spectacular Bacca volley, practically with his back to the goal, after a clearance looped into the air.
However, moments later Manuel Locatelli received his second yellow card for a dangerous tackle on Dybala, reducing Milan to 10 men.
Mario Mandzukic skimmed the upright, then he incredibly turned a totally free header wide from six yards.
Despite being a man down, Milan pushed for the equaliser and almost got it, as a touched-on Juraj Kucka free kick was beaten away low by Norberto Neto.
Juve had a promising counter-attack, but Khedira’s effort was accidentally charged down by teammate Alex Sandro. Vincenzo Montella gave Gerard Deulofeu his debut just hours after completing the loan move from Everton.
There was almost a spectacular third goal for Juventus, a Cuadrado volley for Pjanic scissor-kick volley, but Donnarumma fingertipped it over the bar.
Deulofeu sprung the offside trap and with no support had to test Neto at the near post, as Milan played so much better when down to 10 men. In stoppages Cristian Zapata made a wonderful clean tackle on Mandzukic inside the box, then on the counter Deulofeu dribbled past Cuadrado, but not Leo Bonucci.
Juventus 2-1 Milan
Dybala 10 (J), Pjanic 21 (J), Bacca 53 (M)
Juventus: Neto; Barzagli, Bonucci, Rugani, Asamoah; Khedira, Pjanic; Cuadrado, Dybala (Alex Sandro 67), Mandzukic; Higuain
Milan: Donnarumma; Abate (Pasalic 64), Zapata, Romagnoli, Antonelli; Kucka, Locatelli, Bertolacci (Honda 90); Bonaventura, Bacca (Deulofeu 80), Suso
Sent off: Locatelli 54 (M)
See the latest Serie A predictions and betting tips with Eurotips.co.uk