Baines was the best player on show as he linked impressively with Steven Pienaar all evening, scoring a rocket from the edge of the area and then converting a penalty before Shane Long pulled one back.
However, Everton held on and have now lost just one of their last 11 games, whilst the Baggies continue their slump and drop to ninth in the table.
The game's first chance came after 16 minutes in bizarre circumstances when Victor Anichebe overran the ball and slid in on the defender, his tackle sending the ball inches over the bar.
Three minutes later Marouane Fellaini, who was operating in a deeper role than recently, hit the post. A long ball was nodded down by Sylvain Distin, and the Belgian turned his man before firing at the angle of post and bar.
By now, Everton were in complete control of the game, but it took a switch in tactics from David Moyes to make the difference. He switched Kevin Mirallas to the right wing, allowing Pienaar to link up with Baines.
It took until just before the half-hour mark before the goal came, Baines powering forward and hitting a rocket into the top corner, which Ben Foster could only get a hand to.
In added time before the break following a serious-looking injury to George Thorne, Everton doubled their lead. Substitute Claudio Yacob bundled over Anichebe in the box, and Baines slotted home the penalty, sending Foster the wrong way.
After a quiet start to the second half Everton had two chances in a minute on the hour. First Mirallas forced Foster into a diving stop, and then from the resultant corner Pienaar shot straight at the England keeper.
Long was introduced by Steve Clarke, and he had an almost instant impact. Romelu Lukaku rounded Tim Howard and his shot was inexplicably mis-controlled by Johnny Heitinga, allowing Long to head home.
Less than three minutes later, West Brom almost equalised when Graham Dorrans hit the bar with a free kick.
Everton felt that they deserved a penalty when Anichebe was tugged down. Pienaar forced Foster to tip over a free kick, and then Leon Osman was guilty of a woeful miss after the ball rebounded off the post from Pienaar's deflected effort but it mattered little when the final whistle came.