Sam Allardyce's men recovered from Craig Dawson's early opener to earn a victory that keeps them in the top six and leaves the Baggies hovering above the relegation zone.
Craig Dawson gave the Baggies the lead 10 minutes in when he met a Graham Dorrans free kick with a firm header, but Kevin Nolan levelled when he followed up Ben Foster's save from an Andy Carroll overhead kick on 35 minutes.
Tomkins got what proved to be the winner on the stroke of halftime when he rose above Dawson to head home Stewart Downing's pinpoint corner delivery.
Struggling West Brom ramped up the pressure in the second half, with Victor Anichebe causing several problems, but the club lacked the quality to score a second goal.
West Ham remains fifth - one point below Manchester United - despite the win, but is entrenched in the top half of the table after a fifth win in eight matches.
Buoyed by his side’s impressive, albeit fruitless, display against Arsenal on Saturday, West Brom boss Alan Irvine included Saido Berahino and Anichebe from the start in an attacking lineup, while Chris Baird replaced the injured Sebastien Pocognoli at left back.
Baird's free kick fell invitingly for Nigeria international Anichebe in the seventh minute, but his effort was deflected over, before a succession of set pieces and West Brom pressure ultimately led to Dawson's opener.
Graham Dorrans' well-placed free kick was met powerfully by the head of the defender, with West Brom goalkeeper Adrian, who came off his line, well beaten.
Dorrans then fired over before a strike from former West Brom midfielder Morgan Amalfitano, which was excellently blocked by Joleon Lescott, finally awoke the visiting side from its slumber.
Nolan's bicycle kick was well saved by Ben Foster before West Ham levelled 10 minutes from the interval, as the rebound from Andy Carroll's fierce overhead effort - which was also kept out by the West Brom goalkeeper - was headed in from close range by the skipper.
Sam Allardyce's men turned the screw and Cheikhou Kouyate had a curling effort turned behind by Foster, while Chris Brunt hobbled off for the home side, replaced by Youssouf Mulumbu.
West Ham capped off the first-half turnaround when, in the third minute of stoppage time, Tomkins climbed above Dawson at the back post to nod Stewart Downing's corner across the face of goal and in.
Dawson had a glorious chance to double his tally eight minutes into the second half when Lescott's header was completely missed by Berahino, but the defender, who took a touch, could only shoot just wide from 12 yards.
Two half chances for Berahino kept the home fans interested, and West Ham was beginning to feel the pressure when Adrian did well to keep out a powerful left-footed strike from Anichebe on the turn.
Anichebe was a constant threat and headed at Adrian in the 74th minute, while Irvine showed his intent by bringing on forwards Silvestre Varela and Brown Ideye.
Adrian then produced a magnificent save with his legs to keep out Anichebe, and Dorrans acrobatically shot wide as West Ham defended desperately - which was ultimately enough to seal the victory.