Toulon captain Jonny Wilkinson kicked 21 points as the defending champions edged past Munster 24-16 in Marseille to reach the Heineken Cup final.
Former England fly-half Wilkinson punished Munster's ill-discipline in the first half, kicking four penalties.
Winger Simon Zebo gave Munster hope when he scored after the break while fly-half Ian Keatley kept the Irish in touch with the boot.
But Wilkinson saw Toulon home with two further penalties as Munster faded.
The French champions will now face Saracens in the final in Cardiff on May 24, a repeat of last year's semi-final which, Toulon won 24-12.
They are on course to match the achievements of Leicester Tigers and Leinster as the only teams to have successfully defended the Heineken Cup.
"That was a hell of a game," said Wilkinson.
"You're just in danger everywhere on the field because you give away a penalty, you turn the ball over, and five points is just not enough - at the end there, eight was almost not enough. It's just relentless.
"Today was a game where we had to come ready and be switched on and it takes your energy."
Two-time winners Munster, making a record 11th Heineken Cup semi-final appearance, will rue giving away nine first-half penalties as Wilkinson took advantage.
The 34-year-old World Cup winner showed no signs of the hamstring injury which forced him off in Toulon's quarter-final victory over Leinster.
He established Toulon's lead as Munster failed to get a foothold in the first half despite the French side dropping to 14 men as Juan Fernandez Lobbe was sent to the sinbin.
The Argentine flanker was judged to have caught Munster scrum-half Connor Murray on the head as he came through a ruck.
Wilkinson slotted over a drop-goal and added two more penalties while Delon Armitage struck a long-range effort just before the break.
Toulon began the second half with more intent as South African Bryan Habana's sprint for the line was stopped by an excellent tap-tackle from James Downey.
Zebo then put in a last-ditch tackle to deny Steffon Armitage as the Englishman looked certain to score.
Munster began to exert pressure of their own and, when Murray took the ball from a maul five metres out, he slipped a pass to put Zebo in the left corner.
Assistant referee Luke Pearce confirmed Zebo had grounded the ball despite television replays showing Armitage's hand was underneath.
Keatley struck the conversion only to miss a long-range penalty, before Earls saw yellow for tackling David Smith without the ball. Wilkinson duly slotted another three points.
Munster had the opportunity for a shot at the posts inside Toulon's 22 but opted for the line-out, which the hosts successfully defended.
James Coughlan charged down a Wilkinson drop-goal attempt, before Donncha O'Callaghan gave away a penalty in the last minute to allow Wilkinson to seal victory.
Toulon: D. Armitage, D. Mitchell, Bastareaud, Giteau, Habana, Wilkinson, Tillous-Borde, Chiocci, Burden, Hayman, Rossouw, Suta, J. Smith, Fernandez Lobbe, S. Armitage.
Replacements: D. Smith for Habana (48), Claassens for Tillous-Borde (62), Menini for Chiocci (54), Orioli for Burden (58), Castrogiovanni for Hayman (75), Mikautadze for Rossouw (62).
Not Used: Bruni, Mermoz.
Sin Bin: Fernandez Lobbe (28).
Munster: Jones, Earls, Laulala, Downey, Zebo, Keatley, Murray, Kilcoyne, Varley, Botha, Foley, O'Connell, Stander, Dougall, Coughlan.
Replacements: D. Hurley for Jones (72), Hanrahan for Downey (64), Cronin for Kilcoyne (64), Casey for Varley (75), D. O'Callaghan for Foley (64), O'Donnell for Dougall (55).
Not used: Ryan, Williams.
Sin Bin: Earls (63).
Ref: Wayne Barnes (RFU).