Peter Odemwingie nodded in the winning goal early in the second half after Shane Long and Eden Hazard had also scored with close-range headers before the break.
Roberto Di Matteo, on his return to West Brom, saw his side push hard for a second equaliser but they were unable to find a way past Boaz Myhill who was deputising for the injured Ben Foster in the Baggies goal.
Chelsea were much changed as they had one eye on Tuesday’s crunch clash with Juventus in the UEFA Champions League and left the likes of Ashley Cole, Ramires, Oscar and Juan Mata on the bench.
And it showed in their sluggish start when Shane Long escaped the clutches of David Luiz to head past Petr Cech at the far post from a probing James Morrison cross.
Chelsea enjoyed plenty of possession in the early stages but Long was a constant threat on the break and got the better of Gary Cahill on two occasions without finding the net.
At the other end, Ryan Bertrand saw an effort cleared off the line by Liam Ridgewell and Daniel Sturridge also had a shot comfortably saved by Myhill.
And the Blues did find an equaliser before the break thanks to a tactical shift as Di Matteo switched Hazard to the left flank.
The Belgium international headed in Cesar Azpilicueta’s cross from close range via a deflection off Billy Jones’ shoulder.
But Steve Clarke’s side started quickly again after the interval and Odemwingie converted Long’s near-post cross from the right to restore the home side’s lead.
When Oscar and Mata finally did emerge from the bench, the visitors took control of the game and pushed hard for an equaliser.
But Myhill saved smartly from Sturridge on two occasions and Albion held on for a win that takes them to the dizzy heights of fourth in the Premier League.