Northampton Saints set up a Heineken Cup semi-final against Perpignan with a hard-fought victory over Ulster in a punishing encounter in Milton Keynes.
Soane Tonga'uiha's try put Saints ahead inside two minutes, but Ulster led at half-time courtesy of Andrew Trimble's try and Ian Humphreys' kicking.
Saints' Lee Dickson scored the only try of the second half, which proved to be the decisive score of the contest.
Ulster battled bravely for a late try but it is Saints who progress.
In an explosive start at a sun-drenched stadium:mk, Saints opened the scoring with a try from prop Tonga'uiha barely two minutes into the contest.
The Tongan drove through the middle, rolled through a despairing Ulster tackle and planted the ball over the line. Stephen Myler converted to give the home side a dream start.
But Ian Humphreys pegged them back with two penalties in eight minutes to bring Ulster to within a point of the home team.
Just as it looked as though Ulster were satisfied to merely be back in the game, they went one better and scored what proved to be their only try of the game through winger Trimble.
Trimble carved his way through the Saints defence after good work by Simon Danielli, who created space for Trimble to exploit.
Humphreys kicked the conversion with ease as Ulster took a three-point lead into the half-time break but, just nine minutes into the second half, Myler restored parity with a confidently struck penalty.
With the score finely poised at 13-13 tempers soared as high as the temperatures, as Courtney Laws, excellent throughout, was caught up in an altercation with Johann Muller, with the referee forced to step in.
Northampton responded better to those tetchy moments and, just a couple of minutes later, scored their second try of the game, and this one proved to be the vital score.
Ben Foden combined with England team-mate Chris Ashton before finding Jon Clarke, who fed Dickson to round off a wonderful counter attack down the left flank. Myler converted to open a seven-point lead, which ultimately proved too great a margin for Ulster to bridge.
Ulster needed two scores to produce an improbable comeback but their faint hopes were all but extinguished when Adam D'Arcy squandered what should have been a certain try when he spilt the ball with a man outside and only Ashton covering.
It was a huge let-off for Northampton, who made the game safe with a 64th-minute penalty from Myler, his fifth successful kick of the game.
Northampton director of rugby Jim Mallinder:
"It can only help the more the team plays in these occasions, the more these lads play international rugby.
"We're a young side and we don't have any players who have played in the semi-finals of the Heineken Cup. We're inexperienced in those terms but we're learning all the time.
"In Chris Ashton, Ben Foden and Paul Diggin we have good finishers. Give them half a chance and they'll always be dangerous.
"We got stronger and stronger as the match went on. To see your pack scrummage like that after 70 minutes and for your defence to be hitting breakdowns in numbers and getting turnovers is a credit to the lads."
Ulster coach Brian McLaughlin:
"At half-time we felt like we were still in the game but they upped their intensity a bit.
"Out set piece wasn't on the money and they made us pay heavily for that.
"You can't fault the effort the lads put in but Northampton were deserving winners.
"They're very good at what they do. Their set piece is excellent and have some quality players. That told on the day. They certainly have the firepower to do exceptionally well in the competition."
Northampton: Foden, Ashton, Clarke, Downey, Diggin, Myler, Dickson, Tonga'uiha, Hartley, Mujati, Lawes, Day, Dowson, Wood, Warren. Replacements: Waller for Tonga'uiha (74), Sharman for Hartley (79), Mercey for Mujati (79), Clark for Dowson (74).
Not Used: Sorenson, Commins, Geraghty, Reihana.
Ulster: D'Arcy, Trimble, Spence, Wallace, Danielli, Humphreys, Pienaar, Court, Best, Botha, Muller, Tuohy, Diack, Henry, Wannenburg. Replacements: McAllister for Botha (70), I. Whitten for Muller (78), Barker for Tuohy (56), Faloon for Diack (62).
Not Used: Kyriacou, Young, P. Marshall, Gilroy.
Ref: R Poite (FRFU)