Leinster remain on course for a historic third Heineken Cup triumph in four years after holding off Clermont in a thrilling semi-final in Bordeaux.
Brock James kicked four penalties to two by Jonny Sexton to give the French giants a 12-6 lead at half-time.
Cian Healy's converted try and Rob Kearney's drop-goal early in the second half put Leinster in command before James's penalty made it 15-16.
Sexton landed another before a Wesley Fofana try was disallowed late on.
The France centre lost control of the ball over the line, despite his premature celebration, and television match official (TMO) Geoff Warren ruled out the score, much to the frustration of the majority of the crowd packed into the Stade Chaban-Delmas.
There was still time for Clermont to win two penalties close to the Leinster line, before the Irish province won a penalty themselves to end the siege and secure their place in the final against Ulster at Twickenham on 19 May.
It was only the third time in Heineken Cup history that a British or Irish team has won a semi-final in France, Leinster matching the achievement of compatriots Munster, who beat Toulouse in Bordeaux in 2000 and Castres in Beziers in 2002.
Sexton scored the first points of the game with an eighth-minute penalty but James levelled with his first kick from in front of the posts 10 minutes later.
Sitiveni Sivavatu set up an attack for Clermont on the right wing but referee Wayne Barnes blew up for a forward pass by Nathan Hines as the French side made ground towards the line.
Soon after, Leinster lock Leo Cullen was fortunate not to receive a yellow card after raising his hand to prop Davit Zirakashvili, whose dramatic dive did him few favours.
The French side looked increasingly likely to score the first try of the game as Sivavatu, James and replacement wing Jean-Marcel Buttin showed good hands to move to within metres of Leinster's line, before the ball was eventually turned over.
Leinster's scrum then went backwards under their posts but referee Barnes gave Leinster a penalty and Sexton's clearance kick eased the pressure.
James nudged Clermont in front with his second penalty of the game in the 32nd minute as Isa Nacewa was pulled up for joining a ruck from the side.
Sexton restored parity two minutes later with a close-range penalty after Sivivatu took out Nacewa.
Leinster were penalised for coming in at the side and James maintained his 100% record with the boot.
With a minute of the first half remaining, the Clermont fly-half's fourth penalty secured his side a six-point advantage at the break.
The holders began the second half in barnstorming fashion as prop Healy crossed the line for a 42nd-minute try.
The outstanding Kearney took an inside ball and made a break to open up the Clermont defence, before finding the supporting Healy, who showed a good turn of pace to touch down. Sexton added the conversion to put Leinster one point ahead.
Four minutes later, Kearney landed a long-range drop-goal from the left touchline to increase his side's lead while James showed the first signs of pressure when he missed with a penalty attempt for the first time.
The Australian made amends by successfully converting his next penalty effort to reduce his side's deficit to one point after 52 minutes, but Sexton replied just after the hour with his third penalty.
He might have extended the lead, but his next effort was adjudged to have flown just wide of the posts by the TMO.
Clermont piled on the pressure late on as they laid siege on the Leinster line in a bid to snatch victory.
Fofana thought he had scored - or at least intimated he had by punching his fist in celebration - but Warren ruled otherwise, and a stubborn last-ditch defensive stand on their own line saw Leinster prevail.
Clermont Auvergne: Byrne, Sivivatu, Rougerie, Fofana, Malzieu, James, Parra, Faure, Kayser, Zirakashvili, Cudmore, Hines, Bonnaire, Lapandry, Vermeulen.
Replacements: King for Byrne (22), Buttin for Malzieu (12), Debaty for Faure (48), Paulo for Kayser (64), Kotze for Zirakashvili (59), Pierre for Hines (57), Radoslavjevic for Bonnaire (64), Bardy for Vermeulen (55).
Leinster: R Kearney, Nacewa, O'Driscoll, D'Arcy, Fitzgerald, J Sexton, Boss, Healy, Strauss, Ross, Cullen, Thorn, O'Brien, Jennings, Heaslip.
Replacements: McFadden for Fitzgerald (64), Reddan for Boss (53), van der Merwe for Healy (56), Cronin for Strauss (64), McLaughlin for Jennings (64).
Not Used: White, Toner, Madigan.
Ref: Wayne Barnes (RFU).