Gonzalo Higuain scored against his old club and Paulo Dybala converted a two penalties as Juventus came from behind to beat Napoli 3-1 at home in the first leg of their Coppa Italia semi-final on Tuesday.
Jose Callejon finished off a flowing Napoli move to open the scoring after 36 minutes, a one-two between Lorenzo Insigne and Arkadiusz Milik creating the goal, which put Napoli into the lead for the first time ever at the Juventus Stadium.
For much of the first half Napoli were on top despite trailing Juve by 12 points in Serie A, but the holders equalised two minutes after the restart when Dybala was clipped by Kalidou Koulibaly in the box, the striker scoring the penalty himself.
Juve's second-half improvement saw them take the lead through Higuain, who scored from a narrow angle after Juan Cuadrado's cross was misjudged by Pepe Reina and Koulibaly, before another penalty extended their lead.
Reina was the guilty party this time, bringing down Cuadrado to end a rapid counter-attack, and Dybala put away his second spot-kick of the match to complete the scoring and leave Massimiliano Allegri's side in firm control of the tie.
Victory stretches Juve's winning streak to 10 games in all competitions, while Napoli's second defeat in their last 10 away matches means Maurizio Sarri's side have it all to do in the second leg.
Milik made his first start since suffering an anterior cruciate ligament injury on international duty for Poland in October and he nearly enjoyed a dream return, only for Giorgio Chiellini to block his shot.
Dybala almost opened the scoring after 13 minutes, Reina getting enough behind the shot to turn it wide.
Higuain had been quiet against his former side but his burst of power after 32 minutes threatened to break the deadlock, the striker charging into the penalty area but firing over the crossbar, a miss that proved telling as Napoli then brilliantly opened the scoring.
Insigne found space to play a delightful one-two with Milik before bending a cross to the back post for Callejon, who clipped a shot into the ground and off the post from close range.
Juve were denied an equaliser on the stroke of half-time, Reina blocking Mario Mandzukic's low volley with his shins and recovering well to repel Stephan Lichtsteiner's rebound.
Soon after the interval Juve drew level from the penalty spot, however, as Dybala went down following Koulibaly's challenge and sent Reina the wrong way with his coolly taken kick.
Allegri's men forged ahead after 64 minutes, with Higuain inevitably on target.
Substitute Cuadrado floated a cross into the area and Reina came to collect but missed the ball, which flicked off Koulibaly's head to present Higuain with a straightforward finish.
A dramatic minute then saw key penalty decisions at both ends swing the game decisively in Juve's favour, with referee Paolo Valeri first turning down Raul Albiol's appeals.
The hosts broke at speed and when Dybala fed Cuadrado in the box, Reina was adjudged to have brought the winger down, Dybala again converting into the goalkeeper's bottom-right corner.
Juve closed out the game in relative ease and will be strong favourites to move into the final as they seek a third straight Coppa Italia title.