The hosts started brightly and raced into 17th-minute lead through Juan Jesus, the defender's goal given after a VAR intervention, with the on-field referee having originally ruled it out for handball.
Against the run of play, with their only shot at goal in the match, Salernitana levelled through Federico Bonazzoli in the 33rd minute.
That was only a brief reprieve for the visitors from across the Gulf of Naples, however, as Dries Mertens put Napoli back in front from the penalty spot in first-half stoppage time, before Amir Rahmani tapped home four minutes after the break to make it 3-1.
Salernitana's afternoon went from bad to worse moments later as Frederic Veseli was sent off for picking up a second yellow card when penalised for handball in the penalty area.
Substitute Lorenzo Insigne scored from the spot to seal a comfortable victory for Napoli who climbed to second on 49 points, one clear of AC Milan, who play Juventus later on Sunday, and four adrift of leaders Inter.
Salernitana stayed rooted to the bottom of the standings on 10 points from 22 matches, eight points from safety.
"We need to improve in terms of ruthlessness and character, the matches with five substitutions are never easy even with a two goal difference," Napoli coach Luciano Spalletti told DAZN.
"I don't feel tense about the results of others, ours are enough for me. I look at it in a way that there is always something to learn from these teams."
Napoli's poor form before the Serie A winter break - Spalletti's men lost three of the four matches ahead of the Christmas holiday - had seen them fall behind the Scudetto frontrunners.
Since the return of the Italian top flight, however, they have found their form again, with Salernitana no match from start to finish in the Diego Armando Maradona Stadium.
It was a landmark afternoon for Insigne, who will leave the club and head for Toronto FC in Canada at the end of the season, as he pulled level with Maradona as Napoli's third all-time top goalscorer in all competitions.