Cahill (left) celebrates giving Everton the lead with Joseph Yobo
Everton continued their push for a European place next season and left West Brom rock bottom of the Premier League with victory at Goodison Park.
Tim Cahill put the Toffees in front, taking advantage of some hapless West Brom defending to nod in a corner.
The Baggies were the better team but Tim Howard denied Marc-Antoine Fortune, while Luke Moore saw an effort cleared off the line and one crash off the bar.
Louis Saha sealed it with a stunning turn and perfectly-placed 20-yard shot.
The win cements Everton's position in sixth, but leaves West Brom a point adrift at the foot of the Premier League and if ever a game summed up a team's season, this was it for the visitors.
Moyes happy after uncomfortable win
On top for long periods, Tony Mowbray's men once again were left to rue their profligacy up front and failure to mark properly at the back.
But as has been the case so often during a campaign which increasingly looks destined to end in relegation back to the Championship, the Baggies dominated the early stages.
Some of their one-touch passing was a delight, with James Morrison and Robert Koren at the heart of their endeavour, and Everton struggled to get any sort of foothold on the game.
One delightful move ended with Fortune wastefully side-footing straight at Howard, before the Frenchman skipped past Phil Jagielka and forced a decent save from Howard with a 25-yard shot moments later.
Their best chance came when Morrison slid a fabulous pass into the path of Fortune but as he sprinted clear, Howard raced off his line to make a crucial save.
Not long after, Everton made West Brom pay with a goal that is sure to frustrate former centre-half Mowbray.
Leighton Baines pumped a free-kick into the box, the Baggies defenders completely switched off and with Scott Carson failing to get anywhere near the ball, Cahill rose to nod it into the empty net.
It was a comedy of errors from the visitors and had Cahill not headed in, Jo and Marouane Fellaini were queuing up behind him to get themselves on the scoresheet.
Mowbray promises to keep playing football
The goal seemed to jolt Everton into action and they almost doubled their lead when Steven Pienaar played a lovely one-two with Jo only to scuff his shot at Carson.
But Mowbray has plenty of experience at trying to lift his troops and whatever he said to them at the interval served to raise their game once again.
Koren and the impressive Morrison both went on powerful surges at the Everton defence, only to drag their shots wide from the edge of the box.
The Baggies thought they were level when substitute Moore glanced a Ryan Donk header from a corner goalwards, but Jagielka did brilliantly to clear the ball off the line - another two inches and it would have been over.
Their hopes were dashed when Everton brought on Saha for Fellaini and with 20 minutes to go he made sure of the points in sublime fashion, beating Abdoulaye Meite with an exquisite Cruyff-turn before rifling a left-foot shot into the far corner.
There was still time for Moore to turn smartly and rifle a 25-yard shot against the bar, but it was not to be for the visitors.
Everton boss David Moyes:
"It wasn't a comfortable win at all because of the way West Brom played, they passed it very well and created some chances.
"But we were solid at the back, we took our opportunities and people did their jobs well. We didn't play as well as we would have liked, but that can happen.
"Louis Saha's goal was fabulous, but everyone knows about his ability."
West Brom manager Tony Mowbray:
"When you make silly decisions in your own box you do not deserve to get the three points.
"There aren't many teams who ask as many questions as us going forward, but we're not as good as others at the muck and nettles stuff, you might call it.
"There is naivety in our defending, but I enjoyed watching my team play."
Everton: Howard, Hibbert (Osman 26), Yobo, Jagielka, Baines, Gosling, Neville, Fellaini (Saha 60), Pienaar, Cahill, Jo (Castillo 75).
Subs Not Used: Nash, Lescott, Van der Meyde, Jacobsen.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.