It was Tottenham who were on the front foot early on, with Dimitar Berbatov at the fulcrum of their best moves.
The Bulgarian was involved in Defoe's goal after five minutes, releasing Lennon who sprinted away from Javier Garrido before crossing for his England team-mate to sweep the ball home.
Berbatov was a constant menace, using his strength to hold up the ball and his skill to lay off clever passes behind City's defence for Defoe and Lennon to run on to.
But that attacking threat was diminished in the 20th minute when referee Steve Bennett showed Zokora a red card for his lunging tackle on Elano - a decision that incensed Spurs assistant boss Gus Poyet.
With Tottenham down to 10 men, a visibly unhappy Defoe was replaced by Teemu Tainio, who slotted into a reshuffled back-line.
Tottenham's Didier Zokora was sent off for this challenge on Elano
Having an extra man did not help City much at first, and they were grateful to Vedran Corluka when he deflected a Berbatov shot over the crossbar.
Elano missed from close range for the home side and Michael Johnson fired just over the bar as Tottenham were forced to defend at last.
And in the early stages of the second half a repeat of City's stirring comeback against Bolton on Saturday looked on the cards.
Robinson had to tip over Vassell's header and Martin Petrov volleyed over when well placed before the Tottenham keeper parried a Bianchi effort.
City also felt they should have had a penalty when Pascal Chimbonda tangled with Richard Dunne inside the area.
But Tottenham's tireless work, despite being a man down, meant they saw out the storm.
And, although City kept attacking, they were looking vulnerable on the break and Malbranque duly punished them with eight minutes to go.
Substitute Jamie O'Hara played the Frenchman in, and he rode Dunne's tackle before firing past Joe Hart to ensure his side's progress.
Bookmark with:
What are these?