The Baggies scored the opening goal via James Morrison and controlled proceedings for much of the 90 minutes but needed some late intervention from Graham Dorrans to deny Stoke a point after they leveled in the 86th minute through Cameron Jerome.
Morrison hit a nice shot from range in the 35th minute which was badly affected by the wind, sending Stoke keeper Thomas Sorensen the wrong way, and finding its way into the back of the net.
In the 72nd minute, the Potters were awarded a penalty when Jon Walters was brought down in the box but his spot kick was saved by Ben Foster's legs to maintain West Brom's lead.
It looked as though Roy Hodgson's men would hold on for a narrow win until Tony Pulis brought on Jerome and within seven minutes of coming, the former Birmingham City man made it 1-1 with a header from Jermaine Pennant's free-kick.
And just as it looked like the points would be shared, Dorrans curled his 89th minute free-kick around the corner with Sorensen unsighted to give the visitors a vital three points following three defeats on the trot.
West Brom remained 15th despite the win as Stoke stayed eighth with their first loss in five and just their defeat at home this season.
TRIBAL ASKS: Does Hodgson have the squad to stay away from the drop zone? And what about Stoke. Should Pulis look at bringing in some reinforcements especially with Europa League coming up?
Britannia Stadium, Stoke-on-Trent - 26,865
Yellow cards:STO - nil WBA - nil