Lorenzo Insigne scored twice as Napoli hung on for a 3-2 win over Empoli at the Stadio Carlo Castellani on Sunday.
Insigne struck twice as Napoli took a three-goal cushion into half-time, but they had to ride out a tense final after Omar El Kaddouri and Massimo Maccarone decreased the deficit after the restart.
The three points send Maurizio Sarri's side – temporarily at least – above Roma, who face Sassuolo in Sunday's late kick-off, into second and to within seven points of leaders Juventus before their trip to Sampdoria.
Dries Mertens was unable to open the scoring from the penalty spot after being caught with a high leg from Andrea Costa, his tame effort kept out by the legs of Lukasz Skorupski in the seventh minute.
Just 12 minutes later, though, Insigne made the breakthrough when he powered home after Costa's failure to deal with a cross from the left.
While Mertens may have failed from the spot, he found the back of the net with a sensational dipping free-kick from 25 yards that was too good for Skorupski to keep out – the Belgian's tally for the season now standing at 20.
Napoli were awarded another penalty when Manuel Pasqual tripped Jose Callejon in the box, and this time Insigne was handed the responsibility. He made no mistake, drilling the ball past Skorupski and into the bottom-left corner.
Sarri's side eased off in the second half and Empoli pulled a goal back with 20 minutes remaining when former Napoli midfielder El Kaddouri's free-kick found a gap in the wall.
Their passiveness almost proved costly when Faouzi Ghoulam conceded a penalty that Maccarone fired home for his 100th goal for the club with eight minutes remaining, but the visitors clung on for three points.
100 VOLTE MACCA, 100 VOLTE IL CAPITANO! Massimo Maccarone col il rigore di poco fa ha siglato il gol numero 100 in maglia azzurra! pic.twitter.com/oC2r5tIASe— Empoli Fc Official (@EmpoliCalcio) March 19, 2017