Seamus Coleman got the visitors off to the perfect start when he found the net after just nine minutes with a ferocious finish.
The full-back picked up Leon Osman’s pass out wide on the right before cutting inside of James Ward-Prowse and unleashing an emphatic strike into the top corner.
Southampton had looked bright in spells without creating too many clear-cut opportunities, although their best chance of the opening 45 minutes fell to Adam Lallana who somehow managed to adjust himself to wriggle free of Sylvain Distin and Osman before firing wide.
Second-half substitute Gaston Ramirez levelled proceedings on the 70-minute mark with a strike from some distance after skipping away from James McCarthy, although Joel Robles perhaps should have dealt with it better.
However, just three minutes later, Lukaku ended his run of five games without a goal as he swept McCarthy’s reverse pass past the helpless Kelvin Davis to secure the three points.
The victory means Roberto Martinez’s side moved – for a few hours at least – up a place to fourth in the table, while Southampton remain ninth.
Martinez made five changes to his starting line-up from the surprise Sunderland loss, with some of them enforced.
But Everton certainly looked no weaker than usual in the early stages as Coleman’s third goal in four games fired them into the lead.
The Republic of Ireland international collected the ball from Osman, advanced down the right flank and then cut into the box, beating Ward-Prowse in the process, before unleashing an emphatic effort beyond Davis and into the net.
In the 18th minute, Steven Naismith chased a long ball over the top and, as Davis caught it, went to ground in the area having felt contact from Dejan Lovren, but no penalty was given.
Some nice build-up play from Southampton then saw Lallana’s clever flick tee up Rickie Lambert, who brought a save out of Robles, but the assistant referee’s flag was raised – incorrectly, replays suggested.
Luke Shaw sent a tame effort across the face of Robles’ goal moments later, and both sides struggled to create anything truly incisive for the rest of the first half, with Lukaku failing to make the most of one particularly decent-looking opportunity to send a cross in.
Having juggled the ball away from Distin and Osman on the edge of the area, Lallana dragged a shot wide, Ward-Prowse looped another off-target and at the other end, Naismith looked to get his head to a delightful Leighton Baines free-kick delivery but Southampton cleared.
In the opening seconds of the second half Shaw made a run down the left and played a good ball into the danger zone, where a touch from the sliding McCarthy ensured Lallana could not finish.
Bryan Oviedo – booked moments earlier for a sliding challenge on Calum Chambers – then laid the ball to Ross Barkley, who side-footed wide right in front of goal.
Southampton looked to apply pressure once more and, after a Jay Rodriguez shot deflected behind off McCarthy, Robles spilled a cross before smothering the ball with Lambert lurking.
And there was another suspect moment for Robles soon after as Ramirez collected the ball from Lallana and sent a dipping effort goalwards that seemed to fly right through the Spanish goalkeeper on its way in.
Robles will have surely been relieved to have seen Everton’s advantage restored three minutes later.
Having received the ball from substitute Steven Pienaar as the Toffees swept forward, McCarthy neatly set up Lukaku, who smashed it home past Davis.
Lukaku sent an attempt over soon after and, with Southampton desperately looking to salvage something, Shaw then did likewise.
In the last few minutes, Lukaku might have added another for Everton, but saw his shot saved by Davis.