Leinster's dream of a fifth Heineken Champions Cup success ended at the semi-final stage in France as La Rochelle ran out nine-point winners.
Tries from Gregory Alldritt and Will Skelton along with 22 points from the boot of Ihaia West saw La Rochelle advance to their first European final, where they will play Toulouse at Twickenham.
Tadhg Furlong and Ross Byrne crossed for Leinster tries, with Byrne responsible for 15 of their points.
Leinster made a strong start as they steadily built pressure in the home side's half, with La Rochelle conceding five penalties in the first eight minutes.
With the visitors laying siege to the hosts’ try-line, Wiaan Liebenberg was sent to the sin-bin for illegally killing the ball at the breakdown.
Leinster opted to turn down an almost guaranteed three points to take the tap, with Furlong claiming the game’s first try as he powered his way over from short range. Byrne added the extras to give Leinster an early 7-0 lead.
But La Rochelle’s driving line-out brought them back into the game as they forced Leinster to concede a penalty, which allowed West to convert from 45 metres out on the angle.
The hosts were growing into this game with the likes of Victor Vito and Skelton making headway before Tawera Kerr-Barlow found West in the pocket who slotted over a drop-goal.
But Byrne extended Leinster’s lead to seven points with two successful penalties from distance as La Rochelle’s discipline let them down.
West clawed three points back for the French side before they went on the attack. La Rochelle very nearly scored when West’s cross-kick was taken by Vito, who was brought down just inches short of the try-line.
They had to make do with three points which meant Leinster held a slender 13-12 lead at the interval.
La Rochelle took the lead for the first time in the match seven minutes into the second half, with West adding another three-pointer.
Byrne and West exchanged further penalties before Leinster’s James Lowe was shown a yellow card for not rolling away at the ruck.
Leinster looked out on their feet and, after a period of sustained pressure, La Rochelle’s patience finally paid off as Alldritt was helped over the line by Skelton for their first try.
West added the extras to put the French side 25-16 ahead with 12 minutes left to play.
La Rochelle’s pack were in complete control and they sealed their victory when Skelton touched down courtesy of a powerful driving line-out, with West converting.
Byrne broke the home side’s defensive line to score a converted try late on but it was too little too late for the Irish outfit.
La Rochelle: Brice Dulin; Dillyn Leyds, Geoffrey Doumayrou, Levani Botia, Raymond Rhule; Ihaia West, Tawera Kerr Barlow; Reda Wardi, Pierre Bourgarit, Victor Vito, Uini Atonio; Romain Sazy (capt), Will Skelton; Grégory Alldritt, Wiaan Liebenberg
Replacements: Facundo Bosch, Dany Priso, Arthur Joly, Thomas Lavault, Kevin Gourdon, Arthur Retiere, Jules Plisson, Pierre Aguillon.
Leinster: Hugo Keenan; Jordan Larmour, Garry Ringrose, Robbie Henshaw, James Lowe; Ross Byrne, Luke McGrath (capt); Cian Healy, Rónan Kelleher, Tadhg Furlong; Devin Toner, James Ryan; Rhys Ruddock, Josh van der Flier, Jack Conan.
Replacements: James Tracy, Ed Byrne, Andrew Porter, Scott Fardy, Ryan Baird, Rowan Osborne, Ciarán Frawley, Rory O'Loughlin.
Referee: Matthew Carley (RFU)