London Irish booked their place alongside Leicester in next week's Guinness Premiership Final after defeating Harlequins 17-0 at Twickenham Stoop on Saturday.
The hosts must be kicking themselves after missing four first-half penalty attempts with the Exiles making them pay with tries from James Hudson and Mike Catt sealing victory.
But the predicted high-octane try-fest failed to materialise as two of the league's most entertaining sides spluttered over their lines in a bad-tempered London derby.
It took 42 minutes, six missed penalties and two changes of kicker before a lead was established, Delon Armitage finally booting Irish ahead.
Substitute second row James Hudson crossed to put the Exiles in the driving seat and, when Mike Catt added the second in a dominant final quarter, it was all over.
Irish finished third in the Premiership, one place behind Quins, but they possessed greater nous than their capital rivals, who saw four kickable first-half penalties go begging.
Two of them were missed by Nick Evans - the former All Black was passed fit to play after four weeks out with a thigh strain but was clearly not operating at full throttle.
Defeat concluded a disappointing season for Quins, who also saw their Heineken Cup adventure ended on the same turf by Leinster in the quarter-finals.
Irish march on, however, with a place in the Twickenham final looming next Saturday, when they will start as underdogs against a Leicester side who dispatched Bath earlier.
There were worrying scenes with only two minutes on the clock when Ugo Monye, selected for the Lions tour to South Africa, leapt to catch a high ball.
Landing awkwardly on his neck from a considerable height, he required treatment for several minutes before returning to his feet.
The eventful opening continued as Evans missed two routine kicks at goal
before Danny Care was the victim of a high tackle, sparking a mass brawl.
Referee Chris White declined to punish anyone but shortly after Quins won their third penalty and this time it was Mike Brown's turn to miss after replacing the wayward Evans as kicker.
The thunderous exchanges that marked the first quarter gave way to some exciting passages of play as Nick Easter and Steffon Armitage made eye-catching breaks.
Exiles openside Armitage was denied by a try-saving tackle and his brother Delon set up a chance for Sailosi Tagicakibau only for the Samoan winger to drop the ball over the line.
Tagicakibau was held up in the same corner as Irish continued to press but number eight Chris Hala'ufia was lucky to escape punishment for a high and late tackle on Brown.
The woeful kicking continued as Peter Hewat attempted to make Evans feel better by missing two simple penalties.
Irish's problems continued when a sly trip on Care as he took a quick penalty saw Tagicakibau sin-binned before Brown closed the half with a sixth missed penalty.
The duck was finally broken two minutes after the interval, Armitage hitting the target to send the Exiles 3-0 ahead.
And the lead increased when Quins' defence, stretched as Irish changed the point of attack, opened up for substitute Hudson to storm over, with Delon Armitage converting.
Evans and Care were replaced by Waisea Luveniyali and Andy Gomarsall but it was Quins' bulldozing centre Jordan Turner-Hall who was taking centre stage as he sought contact whenever possible.
Monye produced a try-saving tackle and the Exiles had a try disallowed for James Buckland, with the TMO ruling a knock-on.
But Irish would not be denied their second try, Catt intercepting a pass by Gomarsall to cross under the posts with Armitage converting.
For London Irish:
Tries: Hudson, Catt
Con: Armitage 2
Harlequins: 15 Mike Brown, 14 Tom Williams, 13 Gonzalo Tiesi, 12 Jordan Turner-Hall, 11 Ugo Monye, 10 Nick Evans, 9 Danny Care, 8 Nick Easter, 7 Will Skinner (capt), 6 Chris Robshaw, 5 George Robson, 4 James Percival, 3 Mike Ross, 2 Tani Fuga, 1 Ceri Jones.
Replacements: 16 Gary Botha, 17 Mark Lambert, 18 Jim Evans, 19 Tom Guest, 20 Andy Gomarsall, 21 Waisea Luveniyali, 22 De Wet Barry.
London Irish: 15 Peter Hewat, 14 Adam Thompstone, 13 Delon Armitage, 12 Seilala Mapusua, 11 Sailosi Tagickibau, 10 Mike Catt, 9 Paul Hodgson, 8 Chris Hala'Ufia. 7 Steffon Armitage, 6 Declan Danaher, 5 Bob Casey (capt), 4 Nick Kennedy, 3 Richard Skuse, 2 Danie Coetzee, 1 Clarke Dermody.
Replacements: 16 Alex Corbisiero, 17 James Buckland, 18 James Hudson, 19 Richard Thorpe, 20 Elvis Seveali'i, 21 Peter Richards, 22 Tom Homer.
Referee: Chris White
Touch judges: Roy Maybank, Paul Dix
Television match official: Graham Hughes