Paddy Jackson's 77th-minute penalty capped an incredible Ulster comeback at the Stade Charles-Mathon this afternoon as the Province overcame at a 23-point deficit to keep their European dream very much alive.
A frankly dismal first-half performance was overturned in the second period with an unrecognisable Ulster pulverising the Oyonnax defence with tries from Rory Scholes, Craig Gilroy and the outstanding Kyle McCall, and nine points from the out-half's unfaltering boot.
Credit must also go to the Ulster management for the judicious introduction of big guns Jackson, Ruan Pienaar and Nick Williams at the interval, a tactical switch which effectively swung the balance of power back in favour of the visitors.
Gilroy's return from injury was one of six changes to the defeated XV which started against Munster, with Williams, Pienaar, Jackson and Louis Ludik - whose full-back berth Gilroy slotted into - all deployed on the bench in line with the player management programme.
Scholes kept his place on the left wing while Luke Marshall and Stuart McCloskey continued their pairing in the centre, but the remainder of the backline had a different look, with Sam Arnold taking his European bow on the right wing, and the experienced partnership of Ian Humphreys and Paul Marshall in the half-back slots.
In the pack McCall and Rory Best were joined by Ricky Lutton, in for the injured Wiehahn Herbst, while Lewis Stevenson and Franco van der Merwe lined up at lock, and Roger Wilson replaced Williams at Number Eight, flanked by Robbie Diack and Chris Henry.
If the visitors had imagined Oyonnax - bottom of the pool and with the second-leakiest defence in the competition after Benetton Treviso - might be a walkover, the first half was to prove a rude awakening, with the French outfit registering 23 unanswered points.
The hosts controlled the opening phases and were good value for the try on seven minutes when George Robson climbed highest at the lineout and set in motion the rolling maul for hooker Jeremie Maurouard to crash over, Nicky Robinson converting from wide.
A pacy break from the try-scorer five minutes later as he eluded tackles from Lutton and Diack had Ulster scrambling to bring down full-back Quentin Etienne mere metres from the line, and when Wilson illegally dove on the ball as Oyonnax recycled, Robinson gratefully extended the lead to 10.
Ulster began to edge into the Oyonnax half at the advent of the second period after a reshuffle which saw Arnold, who had made an impressive start, pick up a knock and make way for Ludik. But two scrum infringements in quick succession gave Robinson his third and fourth successful kicks on 28 and 33 minutes, serving as the wake-up call Ulster needed as they eventually penetrated the home '22' moments later.
The five-metre lineout with two minutes of the half remaining promised much until Paul Marshall's pass fell just behind his namesake Luke and just ahead of Ludik, dropping into the lap of winger Uwa Tawalo who, with the entirety of the Ulster team in the opposing '22' committed to the quest for the score, had the Stade Charles-Mathon open like the Red Sea before him, and ran the length of the pitch to score. Robinson's conversion brought a nightmarish first-half for Ulster to a welcome end.
Half-Time Score Oyonnax 23 Ulster 0
Ulster's dismal first-half performance forced Les Kiss to play his hand earlier than he would have hoped, bringing on Pienaar, Jackson and Williams for Marshall, Humphreys and Stevenson at the break. The impact was virtually instantaneous, as from a 43rd-minute lineout Pienaar and McCloskey combined to find Scholes, whose speedy weaving run cut a diagonal swathe through the '22' and carried the winger to the line for a fine individual try.
Jackson dispatched the conversion, and when Henry and Pienaar wrapped up former team-mate Pedrie Wannenburg off the back of a deep Oyonnax scrum, the reversal on five metres almost got Ulster in again until McCloskey ran into a red brick wall and conceded the penalty.
Ulster came again on 55 minutes, and despite losing their first lineout at five metres, bossed the second from 22 and bided their time to wait for the opening which, frustratingly, did not come before Pienaar committed a marginal knock-on when fishing the ball out of the ruck.
The next breakthrough was not long in coming, however, as Pienaar's quickly-taken tap penalty caught Oyonnax off their guard on 62 minutes, and McCloskey's neat wraparound pass fed Jackson, then Ludik and finally Gilroy on the right wing for a strong finish by the flag.
Jackson added the extras once again, and as Ulster sped into overdrive, yet another barnstorming run from McCloskey off the back of a scrum got Marshall and Best inches from the line before McCall scooped up the ball to help himself to the try, converted once more.
Just two points behind with 10 minutes to go, Ulster probed again and again but with van der Merwe penalised for collapsing a maul five minutes later, Oyonnax killed valuable time in the Ulster half until - on 78 minutes - Jackson kept his nerve to slot home from half-way.
There was still time for drama, however, as a last-minute scrum in Ulster territory was first reversed, then turned over again by the Ulster pack, snatching Oyonnax's first-ever European victory from under their noses, and keeping Ulster alive in the pool with 13 points from four games played.
Next up is a Round Five trip to Saracens on 16 January, before the decider against today's opposition at Kingspan Stadium a week later - with at least a highest-placed runners-up slot still a very real prospect for the Ulstermen.
Full-Time Score Oyonnax 23 Ulster 24
Oyonnax (15 - 9) Quentin Etienne; Dug Codjo, Alaska Taufa, Eamonn Sheridan, Uwa Tawalo; Nicky Robinson, Julien Blanc
(1 - 8) Laurent Delboulbès, Jeremie Maurouard, Marc Clerc, George Robson, Fabrice Metz, Pierrick Gunther, Maurie Fa'asavalu, Pedrie Wannenburg
Replacements (16 - 23) Thomas Bordes, Stan Wright, Horace Pungea, Leon Power, Viliami Maafu, Arthur Aziza, Rory Clegg, Daniel Ikpefan
Ulster (15 - 9) Craig Gilroy; Sam Arnold, Luke Marshall, Stuart McCloskey, Rory Scholes; Ian Humphreys, Paul Marshall
(1 - 8) Kyle McCall, Rory Best (c), Ricky Lutton, Lewis Stevenson, Franco van der Merwe, Chris Henry, Roger Wilson
Replacements (16 - 23) Rob Herring, Callum Black, Bronson Ross, Nick Williams, Sean Reidy, Ruan Pienaar, Paddy Jackson, Louis Ludik