Defoe broke the deadlock with a mis-hit volley, having wasted two glorious chances and while Leeds bounced back with Luciano Becchio's leveller, the England man eventually had the final say with two late strikes to end the hosts' plucky cup run.
Tottenham began at a fierce tempo and Defoe had his first chance in just the second minute only to fluff his lines after David Bentley's header had put him clean through.
The Tottenham onslaught continued as Defoe fired just wide after Peter Crouch's clever lay-off five minutes later.
And on 25 minutes, Defoe was found wanting again. A long clearance from Jermaine Jenas picked out the England forward but Leeds keeper Casper Ankergren raced out to smartly save.
Ankergren, the hero 11 days ago, then made a superb stop on 27 minutes, diving low to his right after Gareth Bale's low cross deflected goalwards off Leigh Bromby.
But on 37 minutes, Defoe finally had his first as the impressive Bentley drove to the deadball line and pulled back for the England man, who took a touch before miscuing his looping left-footed effort into the corner.
But in first-half injury time the hosts were level when Argentinian Becchio was on hand to slot home after Heurelho Gomes had denied Jermaine Beckford's instinctive effort.
Soon after the break, Defoe cut inside and rifled over and on 68 minutes a fine counter-attack saw Defoe convert Bale's cross only for the referee's assistant to flag for offside.
Moments later, Angreken was again equal to Defoe's snapshot, but on 73 minutes he finally settled matters, turning home Bentley's dangerous low cross.
Bromby had Leeds' best chance to equalise but headed over on 90 minutes before Defoe raced clear at the death and coolly slotted home to confirm Tottenham's trip to Bolton in the fifth round.