Defoe scored either side of half-time to help sink his former club and Gareth Bale also found the net to give Tottenham a confidence and morale-boosting win.
But the contest was marred by offensive chanting from the away end at White Hart Lane.
West Ham fans chanted “Viva Lazio” and sang the name of former Lazio and Hammers man Paolo Di Canio on several occasions – something that was hard to stomach for the home supporters who witnessed the horrifying attack on Spurs fans in Rome that ended with one man in hospital for stab wounds to his leg and head.
The Hammers fans were also heard hissing on at least three occasions during the game, which is interpreted to mimic the sound of gas released into the death chambers at concentration camps during World War Two.
For a club that has a strong affinity with the Jewish community, Tottenham’s supporters are bound to be offended by the actions of the travelling support especially after Lazio fans chanted “Juden Tottenham” during Thursday’s 0-0 draw in Rome.
Back on the pitch Spurs were far the better team and hugely deserved the win, which moved the north London club above West Ham in to seventh.
The only crumb of comfort for the visitors was Andy Carroll’s late header – his first goal for the club.
Defoe’s first was a fine effort as he broke towards the edge of the box and lashed his shot past a helpless Jussi Jaaskelainen.
The home fans, aware of Spurs’ tendency to throw games away this season, became nervous – but Clint Dempsey put those nerves to rest when he lifted the ball over the West Ham defence and found Bale, who got the ball out from under his feet to prod past Jaaskelainen.
Six minutes later it was game over. Tom Huddlestone robbed a dallying Carroll and Sandro snatched the ball off Mohamed Diame to release Aaron Lennon.