Maxime Gonalons, the Lyon captain, looked to have fired Lyon to the 1-0 win they required to advance with his first-half goal.
However, Dembele popped up in the 90th minute, hammering a blistering 25-yard strike past Remy Vercoutre to set up a mouth-watering third round tie against Inter Milan.
Much of the pre-match focus had been on the nasty attack by a group of 50 locals which hospitalised three Spurs fans last night.
Villas-Boas' team looked like failing to give their vocal supporters a pick-me-up after a dire first half.
Dembele was one of the worst offenders. The Belgian's passing, and that of Scott Parker, was very sloppy and Kyle Walker was given the runaround by Lisandro Lopez.
Gareth Bale inspired Spurs to a first leg win with two stunning free-kicks, but he missed a golden chance to give Spurs a crucial goal in the second half, sidefooting wide while unmarked.
That looked like being it for the Londoners, but Dembele provided the magic they required with just 30 seconds remaining.
Villas-Boas spoke openly yesterday about how he hoped winning a second Europa League could help him find contentment after his unsuccessful 256-day reign at Chelsea, and the 35-year-old will be extremely thankful that his team remain in the competition.
Amid a cacophony of noise coming from the Virage Nord, Spurs looked like a team on the edge from the start.
Clement Grenier swung in a teasing corner in the first minute, Brad Friedel was caught in two minds and Jan Vertonghen put in an emergency clearance before Lyon could pounce.
Grenier tested Friedel again soon after, whipping over a looping ball, but Alexandre Lacazette could only head into the goalkeeper's arms.
Other than the lively Lewis Holtby, who was making his second start, Tottenham failed to impress.
Careless defending from Benoit Assou-Ekotto allowed Lacazette to break free down the right, but luckily for the Cameroonian, referee Wolfgang Stark brought play back for a foul.
Bale, so devastating in the first leg, was anonymous for the first 15 minutes. The first time the Welshman had a say in the course of the game was when his shoddy marking allowed Lyon to break the deadlock after 16 minutes.
Walker fouled Lisandro and when Grenier clipped the free-kick to the near post, Bale turned away from Gonalons - who beat a rooted Friedel from eight yards.
Walker was having a poor game at right-back. The England defender was booked soon after for fouling Samuel Umtiti.
He was not the only one underperforming, though. Parker and Dembele were painfully slow in possession in midfield while Emmanuel Adebayor struggled up front on his own.
Villas-Boas came to the edge of his technical area looking concerned, and he had every right to be worried.
Grenier centred the ball to the unmarked Gueida Fofana, but he laid the ball off to Bafetimbi Gomis rather than home in on goal.
Lisandro shot weakly wide and Lacazette shot straight at Friedel towards the end of the first half.
Spurs came out much more confidently after the break. Parker worked the ball out to Adebayor, who whipped a beautifully shaped ball to the back post, but Bale sidefooted barely an inch wide.
Lyon raced up the other end and Tottenham needed a superb save from Friedel to deny the ever-impressive Grenier.
The goalkeeper then made an error trying to clear a chipped ball over the top, but Assou-Ekotto muscled past Lacazette to retrieve the ball. The forward appealed for a penalty but it was not given.
If Tottenham were going to get an equaliser, it looked like it was only going to come from Bale.
Vercoutre had a nightmare trying to handle the Welshman's swirling shots last week and he looked uncomfortable punching away two similar efforts in quick succession.
Adebayor hooked the ball on to the top of the Lyon bar and Aaron Lennon had a penalty appeal turned down soon after.
Clint Dempsey went close twice soon after his introduction, and it seemed Spurs were destined to fail.
Dembele had other ideas, however, dropping his shoulder to beat Grenier before hitting a powerful long-range shot beyond Vercoutre.