Edinburgh set up a Challenge Cup semi-final against Newport Gwent Dragons with a 23-18 win over London Irish in Reading.
Edinburgh raced into a 16-0 lead with a try from WP Nel and 11 points from the boot of Sam Hidalgo-Clyne as they threatened to run away with it.
London Irish came back though, with Conor Gilsenan and Scott Steele crossing either side of half-time to help Irish back into an 18-16 lead.
However Edinburgh weren't about to let their heads drop, and they hit back through Fraser McKenzie and despite a late charge from Irish, the visitors held on, holding the Exiles over the line with the final play.
Edinburgh had made the perfect start when Hidalgo-Clyne slotted a second-minute penalty, and it got even better when Nel rumbled over from close range after five-metre lineout.
With Hidalgo-Clyne's conversion, Edinburgh were already 10-0 to the good, and he added two more penalties midway through the half to open up a sizable lead.
Irish looked shell-shocked, but they responded before half-time to get a foothold in the game. First Shane Geraghty slotted his first penalty of the game, before Gilsenan got away down the left and sprinted over, with the try given after consultation with the TMO.
Trailing 16-10 at the break, Irish started the second half with a Geraghty penalty, before Tom Fowlie got to his fly-half's chip through, feeding Steele for the try.
Having taken the lead, it looked as though Irish had done the hard part, but Edinburgh responded well and got back in front on the hour. They made hard work of it, with Dougie Fife ignoring a wide-open Andries Ferreira outside him five metres out. After being stopped short, the ball came back quickly and McKenzie ran the perfect line to crash through.
Hidalgo-Clyne converted once more, and Edinburgh had a five-point lead with a quarter of the game remaining.
Irish came back, and piled on the pressure with a succession of penalties on the Edinburgh line. John Andress was sin-binned as a result, but with a try needed to level matters, David Paice was held up over the line, and after a lengthy review from the TMO, there was no way to tell if a try had been scored, with Edinburgh relieved as they held on.
They will now play an all-Pro12 semi-final against the Dragons in Murrayfield.
For London Irish:
Tries: Gilsenan, Steele
Pens: Geraghty 2
Tries: Nel, McKenzie
Cons: Hidalgo-Clyne 2
Pens: Hidalgo-Clyne 3
Yellow card: Andress
London Irish: 15 Andrew Fenby, 14 Topsy Ojo, 13 Eoin Griffin, 12 Eamonn Sheridan, 11 Alex Lewington, 10 Shane Geraghty, 9 Scott Steele, 8 Tom Guest, 7 Blair Cowan, 6 Conor Gilsenan, 5 Nic Rouse, 4 George Skivington (c), 3 Halani Aulika, 2 David Paice, 1 Tom Court.
Replacements: 16 Jimmy Stevens, 17 Matt Parr, 18 Leo Halavatau, 19 Jebb Sinclair, 20 Luke Narraway, 21 Darren Allinson, 22 Chris Noakes, 23 Tom Fowlie.
Edinburgh: 15 Greig Tonks, 14 Dougie Fife, 13 Phil Burleigh, 12 Andries Strauss, 11 Tim Visser, 10 Tom Heathcote, 9 Sam Hidalgo-Clyne, 8 David Denton, 7 Hamish Watson, 6 Roddy Grant, 5 Ben Toolis, 4 Anton Bresler, 3 WP Nel, 2 Ross Ford (c), 1 Alasdair Dickinson.
Replacements: 16 Stuart McInally, 17 Rory Sutherland, 18 John Andress, 19 Fraser McKenzie, 20 Tomas Leonardi, 21 Nathan Fowles, 22 Sam Beard, 23 Tom Brown.
Venue: Madejski Stadium
Referee: Pascal Gauzere (France)
Assistant referees: Laurent Cardona (France), Tual Trainini (France)
TMO: Eric Gonthier (France)