Toulouse will play fellow French side Stade Francais in the final of the Heineken Cup after defeating Leicester.
Leicester: (9) 19
Pens: Goode 4
Toulouse: (10) 27
Tries: F Maka, Elissalde, Michalak
Cons: Elissalde 3
Pens: Elissalde 2
The crucial moment of the match came when Toulouse, leading 10-9 at the time, scored a controversial try through Jean-Baptiste Elissalde.
Toulouse's other tries came from Finau Maka and Frederic Michalak, while Elissalde also kicked 12 points for the French side.
Tom Varndell scored Leicester's try while Andy Goode kicked 14 points.
The match was played in the Walkers Stadium in Leicester, less than a mile from the Tigers' home ground, but they could not make it count.
They were well in the game for an hour but the Toulouse backs always looked dangerous and the French giants will now play in their fourth final, a record for the competition.
Toulouse took the lead with a marvellous try after just two minutes.
When Vincent Clerc fielded Harry Ellis' box kick on the right-hand side, midway between his 10m line and halfway, there looked to be little on.
But he fed Clement Poitrenaud, the full-back fired out a long pass to the flying Cedric Heymans and the winger scorched round the outside of the Leicester defence.
Heymans fed Florian Fritz and his inside pass sent Finau Maka cruising over for a fine try, which was converted by Jean-Baptiste Elissalde.
The French giants suffered a blow when Jean Bouilhou, a major lineout option, went off nursing an arm injury, but that only introduced the mighty Isitolo Maka, brother of Finau, to the fray.
An exchange of penalties between Andy Goode and Elissalde made it 10-3 after 15 minutes and after 22 minutes Leicester spurned a glorious chance of a try.
Finau Maka scored for Toulouse after just two minutes
Goode fired out a long pass with the Toulouse defence stretched but Darren Morris, on for Graham Rowntree, was unable to take it with the try line wide open.
The Tigers pack then rumbled 30 metres to win a penalty which Goode slotted and he added his third kick just after the half-hour mark to make it 10-9.
With two minutes of the half remaining Elissalde missed a very kickable penalty for Toulouse and right on the stroke of half-time Goode also failed with an angled effort for Leicester.
The Tigers replaced Lewis Moody with England team-mate Ben Kay at half-time, presumably due to injury, and the first score of the half went to Toulouse.
Poitrenaud and Yannick Jauzion countered from deep before Elissalde raced clear to score under the posts.
The final pass was at least two yards forward but it was not spotted and Elissalde added the extras to make it 17-9.
The French side nearly added to their score within three minutes but Austin Healey's last-gasp tackle just managed to force Poitrenaud into touch before he dotted the ball down at the corner.
With 20 minutes to go Goode narrowed the lead to five points but Toulouse took the lead back to more than a converted try through an Elissalde penalty after some shoddy play from Harry Ellis, who had a poor game.
Toulouse made the game safe with five minutes of normal time to go when captain Michalak scampered over after a poor defensive kick from Austin Healey.
Elissalde slotted the conversion and although Varndell scored a last-gasp converted try for Leicester, Toulouse were already through to the final at Murrayfield in May.
Leicester: Murphy; Lloyd, Smith, Gibson, Healey; Goode, Ellis; Rowntree, Chuter, White; M Johnson (capt), L Deacon; Moody, Back, H Tuilagi.
Replacements: Buckland, Morris, Kay, W Johnson, Bemand, Vesty, Varndell.
Toulouse: Poitrenaud; Clerc, Jauzion, Fritz, Heymans; Michalak, Elissalde; Poux, Servat, Hasan; Brennan, Millo-Chluski; F Maka, Bouilhou, Lamboley.
Replacements: Bru, Human, I Maka, Labit, Dubois, Baby, Thomas.