Ulster's quest to secure a home final in the United Rugby Championship ended in heartache and agony as the Stormers won a tense semi-final at the death in Cape Town.
It looked as if Dan McFarland’s men had teed up a showpiece date with the Bulls in Belfast next Saturday thanks to first-half tries from Robert Baloucoune and Stewart Moore.
But the Stormers, who were reduced to 10 men when Adre Smith was red carded in the 71st minute, won it with a converted try from Warrick Gelant in the 85th minute.
Read more: Stormers vs Ulster LIVE score updates from the United Rugby Championship semi-final
Gelant’s touchdown in the corner levelled the scores at 15-15 and Manie Libbok stepped up to dissect the posts with the resulting conversion to make it 17-15.
Ulster CEO Jonny Petrie summed up the immediate post-match mood when he tweeted: “Absolutely gutted.”
Head coach McFarland told Premier Sports: "Ultimately when we look at it, we didn't deserve to win that game.
"The third quarter was our opportunity to put the game to bed and we turned the ball over so many times.
"I actually always felt they (the Stormers) were going to end up winning because in a semi-final you can't afford to be so profligate with the ball.
"But fair play to our lads, there's a lot of character in there and we didn't stop fighting. It's disappointing but I'm proud of their effort."
Ulster got off to a scratchy start and trailed 10-0 after only 14 minutes thanks to early tries from Stormers hooker JJ Kotze and Evan Roos.
Kotze bulldozed over the line from a driving line-out in the fourth minute before Roos, one of South African rugby’s emerging stars, added a second 10 minutes later.
A slick training ground move off the line-out saw Roos and Herschel Jantjies exchange passes tight by the touchline for the dynamic No8 to race clear.
Libbok missed both conversions and Ulster were back in it in the 18th minute when Baloucoune sprinted in for his eleventh try of the season.
The Stormers were claiming a forward pass as Moore sent Baloucoune in at the corner but a TMO check awarded the score, Cooney’s attempted conversion coming back off the post.
Ulster were ahead on the half hour mark when Moore strolled in for his third try in two games following his brace against Munster in the quarter-finals.
James Hume passed wide for Baloucoune and he fizzed through a gap to pass inside for Moore who had the simplest of finishes.
Cooney converted and also added a 40th minute penalty to send McFarland’s men in at the half-time break with a 15-10 lead.
Ulster, who failed to add to their score in the second half, were rocked when the dangerous Baloucoune limped off after failing to shake-off a leg injury.
But the Stormers were reduced to 14 in the 71st minute when substitute Smith picked up a red card for putting his hands around Iain Henderson’s eyes at a maul.
Despite the advantage, Ulster were looking fatigued and hanging on and the hosts got their winning score with the clock reading 84.12 minutes.
John Dobson’s men battered the line and Jantjies fed Libbok who tossed a long looping pass for the unopposed full-back Gelant to race over in the corner.
Libbock’s conversion to win it by two points looked to be drifting wide but it sneaked in to take the Stormers into an all-South Africa final with the Bulls next Saturday.
Read more: Ireland coach Andy Farrell given "roll the dice" advice on Ulster star ahead of New Zealand tour
Read more: Ulster suffer major blow as star back undergoes surgery following recent injury
Sign up to our free sports newsletter to get the latest headlines to your inbox.