The 90 minutes were relatively evenly contested as far as possession is concerned but while Juventus appeared to have territorial dominance it was Napoli who made the most of their time on the ball, giving Gianluigi Buffon considerably more work to do than Alex Meret had to deal with.
Barely five minutes had passed when Cristiano Ronaldo was gifted an early sight at goal though as it was the younger of the two goalkeepers who had to be alert first.
A lapse from Jose Callejon saw him misplace a pass in his own area only to find Paulo Dybala. The Argentine offloaded for Cristiano but Meret did well to turn away his low strike.
Juventus were left wanting a penalty when Alex Sandro felt he was fouled by Mario Rui, but the coming together was deemed nothing more than a shoulder to shoulder challenge.
Napoli’s best spell came as half time was approaching, starting with a Lorenzo Insigne freekick that crashed off Buffon’s right-hand post.
That effort appeared to breed belief within the Partenopei and Dries Mertens tried to maze his way through Juve’s backline soon after. Although his effort eventually broke down, Insigne had a curling effort headed away by Alex Sandro with what was as good as a goal-line clearance.
The ball almost immediately fell for Diego Demme beyond Juve’s backline, and the midfielder forced a save out of Buffon when he might have expected to open the scoring.
The 42-year-old was called into action again within seconds, this time having to stretch to his right to turn an Insigne strike behind.
Meret had to be alert again late in the half to cut out what would have been a certain goal for Cristiano Ronaldo.
The second half’s opening exchanges were considerably more open and both sides were guilty of fluffing half-chances.
Callejon was the first as he cut in from a corner and, despite Rodrigo Bentancur slipping while closing down, the forward fired a wild strike off target.
The Uruguayan was then guilty of his own wayward strike from range after being teed up by Cristiano Ronaldo on the edge of the Partenopei’s area.
Dybala and Fabian Ruiz both took their own turns trying to pick out the top corner from range, with neither finding the target, before Buffon denied the recently arrived Matteo Politano and Meret palmed away a curling Dybala cross.
Napoli’s substitutes continued to prove problematic for Juventus when Arkadiusz Milik managed to peel away from his marker but, despite the space he had found, he sent his shot off target when he was found with a cutback.
As the clock ticked beyond 80 minutes Politano had the biggest chance of the half through Politano, but his attempt of glancing on Insigne’s cross headed straight at Buffon. He then turned provided to pick out Insigne, but the Neapolitan sent a shot over.
Despite his first half efforts, Buffon saved his best work for stoppage time. He first got down low and fast to deny Nikola Maksimovic and then defied his age by reacting quickly to turn Elif Elmas’ follow-up onto the post to send the game to penalties.
Meret’s form carried into the shootout as he saved Dybala’s first effort, with Danilo firing over from Juventus’ second.
Insigne, Politano, Maksimovic and Milik all converted their efforts, meaning Leonardo Bonucci and Aaron Ramsey’s successful kicks mattered little.