In the game, Fiorentina, who has already secured another season in the top flight, also hitting the woodwork twice. The win leaves the top four place in the hands of the Pertonopei. The win moved the visitors to 76 points in fourth place, with Juventus on 75 ahead of the final round of games.
Both sides made an aggressive start. Pietro Terracciano flew to palm away a Piotr Zielinski strike and smothered the Fabian Ruiz follow-up.
In-form striker Dusan Vlahovic failed to score after his diving header hit the back of the net, but he was offside.
Napoli got another chance on goal through skipper Lorenzo Insigne. The winger’s free-kick dipped over the wall and thumped the crossbar on 33 minutes.
Terracciano was again called into action, saving a Matteo Politano strike at the near bottom corner.
Napoli got the first lifeline from the penalty spot. Nikola Milenkovic, in a stupid foul in the box, pulled Amir Rrahmani’s shirt on a corner even though the ball was nowhere near them. The referee then awarded a penalty after viewing it again on VAR. Insigne stepped up but converted the poor penalty, as Terracciano managed to parry before he scored from the follow-up to finally break the deadlock.
Frank Ribery was a thorn in Napoli’s flesh again while trying to fight back. The veteran twisting and turning runs wreaked havoc. He also got another chance to create a goal as he set up for Giacomo Bonaventura that was smothered.
After Insigne hit the frame of the goal for the second time with a daisy-cutter that went off the base of the upright after Politano’s back-heel flick, Napoli doubled their leed.
Insigne knocked down Victor Osimhen’s cross for Piotr Zielinski. The midfielder’s shot seemed to be going wide until it took a massive deflection off Lorenzo Venuti.
Meanwhile, AC Milan played a 0-0 draw with Cagliari to remain third on the Serie A table. AC Milan are level on points with Napoli and a point ahead of Juventus.