Fabian Ruiz fired the hosts in front early on, but Immobile responded with a clinical finish that saw him equal the single season Serie A scoring record set by Gonzalo Higuain at Napoli in 2015/16.
A Lorenzo Insigne penalty and Matteo Politano strike in the second half were enough to earn Gennaro Gattuso’s side a confidence-boosting victory ahead of their Champions League last 16 second leg against Barcelona next Saturday.
The result means Lazio finish fourth, behind Atalanta on head-to-head record, while Napoli were already guaranteed to end the season down in seventh.
Ruiz put the hosts ahead after just nine minutes with a curling effort into the top corner from the edge of the box, and Insigne was inches away from doubling the lead when he pulled a shot wide from 12 yards out.
But Immobile levelled the scores midway into the first half with a superbly taken first-time shot on Adam Marusic’s pass, squeezing the ball past David Ospina at the near post.
The hosts went back in front after the break from penalty spot after Marco Parolo was judged to have caught Dries Mertens with a slide tackle, and referee Gianpaolo Calvarese waved away the midfielder’s appeals before Insigne sent Thomas Strakosha the wrong way.
Lazio almost mustered an immediate response through Joaquin Correa, who went on a winding dribble past three defenders before thumping the outside of the post with a shot from a tight angle.
But Napoli wrapped up the points in stoppage time when a deft pass from Mertens sent substitute Politano through on goal, and he calmly finished.