Trailing 3-0 after last week's first leg in London, Inter drew level on aggregate thanks to goals by Antonio Cassano, Rodrigo Palacio and a 75th-minute own goal by William Gallas, taking the game to an extra 30 minutes.
Emmanuel Adebayor grabbed the crucial away goal for Spurs in the 96th minute, leaving Inter needing to score twice to advance. Ricardo Alvarez set up a tense finish by netting in the 109th, but Spurs held on to progress with a 4-4 aggregate score line.
Rubin Kazan and Basel also went through to the last eight from the early kickoffs. Chelsea was looking to overturn a 1-0 first-leg deficit to Steaua Bucharest in one of five later games.
Inter's tormentor in the first leg, Gareth Bale, was missing through suspension and Spurs seriously missed the cutting edge of the in-form winger in what was expected to be a routine second leg.
The Italians, winners of the Champions League in 2010, were unrecognizable from last week with Cassano particularly impressive.
The Italy striker opened the scoring in the 20th with a header, set up Palacio for his goal in the 52nd and then provided the shot that Gallas deflected into his own net.
Cassano also crossed for Alvarez to head home past goalkeeper Brad Friedel but Adebayor had already prodded in from close range to give Tottenham a precious cushion, although the visitors had to withstand some nervy moments late on.
Italian media were speculating that the job of Inter coach Andrea Stramaccioni was on the line heading into the match, after the heavy loss against Spurs and a run of just three wins in 13 matches. The manner of his team's elimination should leave him with some leverage.
Kazan also secured victory in extra time against Levante, with goals by Jose Rondon and Vladimir Dyadyun sending the Russian team through to the competition's quarterfinals for the first time.
Ten-man Basel needed a late penalty save from Yann Sommer off Roman Shirokov to go through 2-1 on aggregate over 2008 winner Zenit St. Petersburg after a 1-0 loss in the second leg.
Axel Witsel's 30th-minute goal halved Zenit's deficit and the Russians were given further hope when Marcelo Diaz was sent off for Basel. The Swiss team was thankful for Sommer's intervention in the 86th minute.