The England striker struck in the 75th minute to cap a dominant performance from Spurs – but his close-range shot should never have beaten Hammers goalkeeper Robert Green, with the ball squirming through his grasp.
Spurs will face either Hull or Beijing Guoan in the final on Friday.
And there was added disappointment for the Hammers after losing Luis Boa-Morte early in the game following a challenge with Benoit Assou-Ekotto.
There are fears he suffered a suspected cruciate knee ligament injury – and the winger was taken to hospital for a scan.
Spurs fielding new signing Kyle Naughton in midfield, while the Irons handed a start to on-loan Inter Milan midfielder Luis Jimenez.