The visitors made a positive start to the contest, with Stephane Sessegnon sending a cross the way of Craig Dawson to head just over, while, two minutes later, the Baggies launched a counter-attack after Spurs came forward, but Saido Berahino sliced the ball high under pressure from Younes Kaboul.
© Getty Images
James Morrison was next to threaten for the visitors, but Hugo Lloris was able to punch the effort away. The ball subsequently fell to Joleon Lescott, but the defender could not find a gap to fire the ball home.
A few minutes later, the Spurs keeper had to be at his best to thwart a powerful Craig Gardner volley from outside the box.
Emmanuel Adebayor then had the chance to finish off what would have been a great team move midway through the first half, but the Togolese striker could not latch onto Christian Eriksen's deft back-heel pass.
Controversy ensued just after the half-hour mark when Adebayor appeared to have handled the ball in the Spurs box, but the referee waved away Dawson's appeals.
With less than 10 minutes left in the half a long ball forward from Eriksen fell perfectly for Adebayor, but once again Lescott was impervious in defence, getting the slightest touch to guide the chance into Ben Foster's hands.
Berahino then appeared to have opened the scoring for the visitors a minute later, but the referee disallowed the goal for offside.
© Getty Images
West Brom came close to finding the target twice more early in the second half through Gardner and Berahino, with the latter producing a fine save out of Lloris.
Foster was called into action himself to thwart substitute Roberto Soldado and Adebayor as Spurs pushed for an opener, but the England international dived in the way of both attempts.
With 15 minutes remaining, Alan Irvine's side did edge ahead, however, as Morrison headed past Lloris from a corner having been left unmarked.
Spurs went in search of an equaliser, and Adebayor very nearly found a way through at the death, only for Dawson to track back and clear the striker's header off the line.
The surprise win lifts the Baggies into 15th place in the league table, while Tottenham drop to ninth.