Jermain Defoe struck twice as Tottenham beat West Ham 3-1 at White Hart Lane to move up to seventh in the Premier League table.