Northampton Saints reached the Amlin Challenge Cup final by beating three-times winners Harlequins.
Saints built a solid lead through two Stephen Myler penalties and a Tom Collins try, with Ben Botica's penalty the only first-half score for Quins.
Saints's Kahn Fotuali'i broke away to touch down, but Nick Easter replied.
Northampton director of rugby Jim Mallinder said: "It was a hard-fought win and was always going to be tough because Quins are a good side."
The visitors failed to mount late pressure as Saints battled through.
Northampton, winners of the Challenge Cup four years ago, now have the chance of a Premiership and European double as they head to the Cardiff final at the same time as pursuing a home play-off in the league.
Mallinder added: "Defensively we were very good for 80 minutes and stopped a lot of their threats.
"George North has a calf strain, hopefully it's not too bad. He picked it up in the warm-up and thought he was okay to carry on but clearly wasn't 100%.
"Tom Collins hasn't been selected for the England Under-20s so they must have some brilliant wingers. He's been great for us all season.
"Kahn is a special player. There were two outstanding nines on the field with Danny Care for them, but I thought we marshalled him well."
Quins, whose three successes in this competition are the highest of any club, will now turn their attention to sneaking into the Premiership top four.
But this game could have wider implications, with Wales wing George North and England full-back Mike Brown both picking up injuries.
With England boss Stuart Lancaster watching, Brown hit the concrete on the edge of the pitch when being taken out in the air by Jamie Elliott, who was sent to the sin bin. He limped through the first half only to not re-emerge for the second period.
And North hobbled off after 20 minutes and was replaced by Collins.
Harlequins director of rugby Conor O'Shea said: "Michael Brown has hurt his knee. If you get taken out of the air you're lucky you don't land on your head first off. His knee went into the ground but he's fine.
"It's just stiffened up massively and ballooned up. We've nine days before the next game so we hope he will be alright.
"Every little thing in the game didn't go our way. Sometimes energy flows from certain things that happen in matches and they got the momentum shifts.
"Was there a touch of the ball? [For the Saints' second try] They're the small margins in sport. He touched it a feather, but he touched it. A knock-on is a knock-on.
"But you can get carried away. Northampton deserved their win."
The injuries contributed to a stop-start opening with few point-scoring opportunities, as Botica fell short with a long-range penalty.
A Myler penalty put the hosts in front before 19-year-old Collins snatched the first try, rushing in and claiming Fotuali'i's perfectly looped kick into the corner and touching down.
Myler put his conversion wide but, after Quins back-rower George Robson was forced off following a nasty blow, the Saints fly-half landed a penalty to make amends -only for Botica to put one of his own over before half-time.
Fotuali'i had Northampton further ahead after the break, seizing on a loose ball and racing away. Quins were convinced there had been a knock-on in the build up, but the replays proved otherwise, and Myler converted.
Harlequins promptly responded, gaining territory and getting a mass of bodies to the line that forced Easter over, as Botica added the extras.
But the late Quins surge failed to materialise and Saints easily held out to progress to an all-English final against the winners of Sunday's other semi between London Wasps and Bath.
Northampton: Wilson; Elliott, G Pisi, Stephenson, North; Myler, Fotuali'i; A Waller, McMillan, Ma'afu; Manoa, Craig; Clark, Dowson (capt), Dickinson.
Replacements: Haywood, Denman, Mercey, Lawes, Wood, Glynn, Burrell, Collins.
Harlequins: Brown; Walker, Molenaar, Turner-Hall, Smith; Botica, Care; Marler, Ward, Sinckler; Matthews, Robson; Wallace, Robshaw (capt), Easter.
Replacements: Buchanan, Lambert, Doran Jones, Guest, Fa'asavalu, Dickson, Grimoldby, Lindsay-Hague.