Leighton Baines scored two first-half goals as Everton overcame West Brom 2-1 at home to close the gap on fourth-placed Tottenham to a point.
Baines opened the scoring with an emphatic strike, darting forward and crashing a thunderous shot into the top corner from 16 yards.
Baines doubled his tally for the night from the spot, sending Ben Foster the wrong way after Victor Anichebe was tripped.
But West Brom rallied in the second half and Long scored two minutes after coming off the bench - but it proved to be nothing more than a consolation.
Steve Clarke may have guided West Brom to their best points tally at this stage of a Premier League season but, without a league win since Boxing Day, the Baggies are enduring a slump.
And one of the last grounds a team on a bad run would want to visit is Goodison Park, where Everton have lost only once this season.
West Brom had their moments, with Jerome Thomas and Romelu Lukaku combining well early on to keep Everton busy. But David Moyes’s side soon caught on to West Brom’s strategy to find their attacking pair early, and nullified the threat swiftly.
Most of the half was about Everton, with Kevin Miralles - who kept Nikica Jelavic on the bench - particularly lively. Marouane Fellaini had his moments too, hammering the ball against the post after Sylvain Distin’s knock down. But Baines, as he has so often been this season, was the difference. His superb deliveries and positive runs forward caught West Brom out time and time again, and he cut right through them for the opener.
Surging forward from left-back, Baines combined neatly with Leon Osman before thumping a shot into the near top corner.
There was no stopping that, but there was no stopping Baines. The left-back almost created the second when his pinpoint cross could not quite find Fellaini, with West Brom desperately clearing.
The Baggies lost George Thorne to injury, and his replacement Claudio Yacob’s first contribution was to concede a penalty for a foul on Anichebe. Baines duly despatched the spot kick, sending Foster the wrong way.
But West Brom stopped Everton from getting into their rhythm in the second half and looked far more dangerous in attack. Chris Brunt and Graham Dorrans started to see more of the ball as the Baggies posed a much greater danger after the restart.
And they were eventually rewarded midway through the second half. Brunt’s through ball found Lukaku, who rounded Tim Howard and went for goal. Johnny Heitinga was on the line but his heavy touch saw the ball pop up for Long, who headed in from close range.
The game burst into life after Long’s strike, with Everton becoming increasingly nervy. And the scores could easily have been level when Dorrans bent a beautiful free-kick around the Everton wall but could only watch it crash back off the bar with Howard beaten.
But as hard as they battled, West Brom could not find a leveller. Everton thrust forward late on in search of a third goal and Osman should have sealed it late on, but he inexplicably blazed his shot over the bar from six yards after the excellent Steven Pienaar saw his shot parried.
But Everton held on for a vital win in their quest for a Champions League place and, following Tottenham’s draw at Norwich, are now only a point off Andre Villas-Boas’s side.
MAN OF THE MATCH
Leighton Baines - Everton: Scored twice and could even have had a hat-trick. First class defensively.
EVERTON: Howard 7, Jagielka 7, Distin 7, Heitinga 6, Baines 9, Osman 6, Neville 7, Pienaar 8, Miralles 7, Fellaini 7, Anichebe 7. Subs: Jelavic n/a, Gibson 7.
WEST BROM: Foster 7, Jones 7, McAuley 7, Olsson 7, Popov 7, Dorrans 7, Brunt 7, Morrison 6, Thorne 6, Thomas 7, Lukaku 7. Subs: Rosenberg n/a, Long 8, Yacob 5.