The Belgium international came off the bench to break the deadlock against a stubborn Hammers defense, with the late strike ending a run of three consecutive league defeats.
The Belgian's 81st-minute goal proved the difference as the Hammers' mini revival came to end following a run of four wins and one draw in the previous five Premier League games prior to the trip to Everton.
The home side controlled the majority of the first half and went close through Steven Naismith and Gerard Deulofeu, but neither could find a way past Adrian in the West Ham goal.
Steven Pienaar hit the post straight after the restart and Sam Allardyce's men looked set to clinch a point and their 14th clean sheet of the season before Lukaku struck nine minutes from time to send Everton back above Manchester United in the table.
|VIEW FROM GOODISON PARK
|By Tom Maston
The club's Champions League aspirations may be slim, but for Everton this was the morale-boosting win needed ahead of the trip to Arsenal in the FA Cup next week.
Roberto Martinez would be forgiven for concentrating on the cup from now on, and in truth for large chunks of this game some players looked to have their minds on the Emirates on Saturday.
They were indebted to Romelu Lukaku, who showed the killer instinct the Toffees have been missing in recent weeks to seal three points in the final minutes.
West Ham battled, but the home side just about deserved the win. This result may bring an end to the good run of form Sam Allardyce’s side has been on of late, but repeats of this kind of showing will see the team survive with ease.
Although Leon Osman nearly turned in Naismith's headed front-post flick, clear chances were scarce during the first 20 minutes, despite Everton generally dominating proceedings.
Naismith forced Adrian into his first save 22 minutes in as he fired at goal from an acute angle, but the Spaniard make a fairly straight forward stop.
With West Ham offering virtually no threat in attack, Allardyce made the decision to introduce Carroll for Carlton Cole after just 28 minutes, but he made little difference initially.
Deulofeu was the next to go close for Everton nine minutes before the break. The on-loan Barcelona winger twisted and turned his way past a couple of defenders on the edge of the area before curling a left-footed effort towards the bottom-left corner, but the attempt went agonizingly wide.
Everton made a ferocious start to the second half and within two minutes of the restart Pienaar was presented with a massive chance as he latched on to Leighton Baines' through ball, but his first-time effort came back off the right-hand post.
John Stones enjoyed a solid first half, but just before the hour he almost contributed to Everton's downfall as he sliced a clearance only as far as Carroll, but luckily for the England Under-21 international, Tim Howard palmed the subsequent half-volley over the crossbar.
West Ham was doing a good job of keeping Everton at bay, but with nine minutes to go Baines cut a pass back to Lukaku and the Belgian hit an emphatic left-footed finish past Adrian to move the home side up to sixth.