Mark van Gisbergen's penalty deep into injury-time salvaged a draw to preserve Wasps' slender hopes of reaching the Heineken Cup knock-out stages.
HEINEKEN CUP POOL SIX
Wasps 15 (9)
Pens: Van Gisbergen 5
Toulouse 15 (7)
Tries: Thomas, Clerc
The full-back struck with the last kick of the game after Frederic Michalak's drop-goal appeared to have edged it for the defending champions.
Wasps led 9-7 at half-time through three Van Gisbergen penalties.
But Toulouse scored tries in either half through Gareth Thomas and a superb second effort from Vincent Clerc.
It was fashioned by an incisive break from centre Yannick Jauzion, with Florian Fritz and Thomas combining to send Clerc over in the left corner.
The goal-kicking of Jean-Baptiste Elissalde, who landed only one from five before hobbling off late on, ensured Wasps stayed in touch though.
Van Gisbergen's fourth penalty brought them level at 12-12, but Michalak promptly edged the visitors back in front.
But with eight minutes left, Van Gisbergen skewed a penalty attempt wide that appeared to have condemned Wasps to defeat.
But Paul Sackey's break-out from his own 22, in the fifth minute of injury-time, forced replacement Toulouse flanker Yannick Nyanga to concede a five-metre scrum.
Toulouse infringed at the first scrum, and then conceded another penalty after Wasps opted for a second scrum.
John Hart - taking over captaincy duties from the departed Lawrence Dallaglio - opted for a kick at goal, rather than one further scrum that might have yielded a winning try.
Van Gisbergen, whose form has stuttered since his England call-up, held his nerve superbly to keep Wasps alive, just, in the pool.
But the English champions must win all four remaining pool games - including the return fixture against Toulouse in France - to have any realistic chance of progressing.
Wasps captain Lawrence Dallaglio:
"It was one of those 50/50 calls at the end. If you score from the scrum and win the game, it is the greatest decision in the world.
"But from our experience of this competition, you have got to get something out of every game, and if we got nothing out of this one we would have rued not going for the penalty.
"The guys on the field made the decision and I think it was the right call. We will take the two points and see where we are at the end of the pool stages."
Wasps full-back Mark van Gisbergen:
"I thought I had better get that kick because I missed one before. I was just happy to get it over and it keeps us alive."
Toulouse captain Yannick Bru:
"We are satisfied to come away from here with two points but it was very disappointing at the end for us because we could have won.
"But we could have lost too on the last action of the game.
"With one minute to go we were close to the Wasps line and we just had to keep the ball. But we lost it and then went 80m back. It was incredible."
Wasps: Van Gisbergen; Sackey, Lewsey, Abbott, Voyce; King, M Dawson; Payne, Ibanez, J Dawson; Shaw, Birkett; Hart, O'Connor; Dallaglio (capt).
Replacements: Barrett, Bracken, Skivington, Rees, Reddan, Brooks, Staunton.
Toulouse: Thomas; Clerc, Jauzion, Fritz, Heymans; Michalak, Elissalde; Poux, Bru, Hassanein; Brennan, Pelous; Bouihlou, F Maka, I Maka.
Replacements: Lacombe, Menkarska, Millochlusky, Nyanga, Lamboley, Poitrenaud, Dubois.
Referee: Alain Rolland (Ireland)