Ulster kept their hopes of Heineken Cup knockout rugby very much alive on Saturday thanks to a 26-22 victory over Bath at the Recreation Ground.
The win repeated last season's historic 'double' over Bath with tries in each half from Adam D'Arcy and Nevin Spence and a fine kicking display by Ian Humphreys.
While Bath resign themselves to non-qualification for the second season in a row, the Ulstermen can now look forward to an epic clash with Pool 4 leaders Biarritz.
The match turned on a yellow card shown just after half-time to fly-half Butch James, making his first appearance in a Bath shirt since shoulder surgery in August.
It allowed Ulster, trailing by a point at half-time, to grab the initiative with Nevin's 56th-minute try. Man-of-the-match Humphreys slotted the touchline conversion and held Bath at bay with excellent place kicking while the home side could muster only a long-range try from Matt Banahan.
Volunteers descended on the Recreation Ground to shovel snow to the pitchside and to clear walkways and stairways.
The playing surface, protected by covers all week and by a tent-like structure for the last 48 hours, was in perfect condition underneath and the gates were finally opened barely an hour before kick-off.
Ulster were caught cold in the first minute when Jack Cuthbert hit up through the middle and Lee Mears was on hand to send Matt Carraro in at the corner for an unconverted try.
Stand-in skipper Michael Claassens should have added another on five minutes after charging down a Humphreys clearance but completely lost track of the ball which was then knocked on by Carraro.
Barkley soon added a penalty after Andrew Trimble was caught offside but Ulster hit back with a 10th-minute Adam D'Arcy try after the visitors tapped and a ran a free-kick and Diack provided his full-back with the scoring pass.
Humphreys converted but then needed treatment after a late 'hit' by James which escaped the officials' attention. Ulster prop BJ Botha was not so fortunate after a high tackle on Claassens though and Barkley's second penalty made it 11-7 to Bath.
Humphreys and Barkley swapped further penalties but the Ulster fly-half seemed to be struggling with an injury and his tactical kicking was too often handing the initiative back to Bath.
As half-time approached, however, Bath had failed to convert possession into points and Ruan Pienaar broke dangerously with Humphreys and the dangerous Trimble in support. Bath's defence snuffed out the threat but only at the cost of a penalty which was landed by Humphreys from an acute angle to again cut the lead to a point.
James' notoriously short fuse lasted just four minutes into the second half when he was sin-binned after a scuffle with Dan Touhy.
But, having worked their way into the Bath 22, Ulster gave away two penalties in quick succession, surrendering hard won ground.
As James waited for a break in play to return to the field, Ulster seized their chance to string together phase after phase and finally Paddy Wallace put centre partner Spence in at the corner. Humphreys converted magnificently and then added a 50-metre penalty for good measure to put his team ahead for the first time at 14-23.
Two penalties in quick succession saw Spence sent to the sin bin and Barkley pulled back three points from under the posts.
Suddenly Bath burst into life, attacking from their own 22 through Nick Abendanon and finishing off in spectacular fashion through Banahan in the opposite corner. Barkley failed to convert but Humphreys, immediately handed a penalty chance from 40 metres, stretched the Ulster lead to a decisive four points.
Try: Carraro, Banahan
Pen: Barkley 4
Tries: D'Arcy, Spence
Con: Humphreys 2
Pen: Humphreys 4
Bath: 15 Jack Cuthbert, 14 Matt Carraro, 13 Olly Barkley, 12 Shontayne Hape, 11 Matt Banahan, 10 Butch James, 9 Michael Claassens (capt), 8 Simon Taylor, 7 Lewis Moody, 6 Andy Beattie, 5 Danny Grewcock, 4 Stuart Hooper, 3 David Wilson, 2 Lee Mears, 1 David Flatman.
Replacements: 16 Pieter Dixon, 17 David Barnes, 18 Duncan Bell, 19 Ignacio Fernandez Lobbe, 20 Ben Skirving, 21 Mark McMillan, 22 Sam Vesty, 23 Nick Abendanon.
Ulster: 15 Adam D'Arcy, 14 Andrew Trimble, 13 Nevin Spence, 12 Paddy Wallace, 11 Simon Danielli, 10 Ian Humphreys, 9 Ruan Pienaar, 8 Robbie Diack, 7 Willie Faloon, 6 Pedrie Wannenburg, 5 Dan Tuohy, 4 Johann Muller (capt), 3 BJ Botha, 2 Nigel Brady, 1 Tom Court.
Replacements: 16 Andi Kyriacou, 17 Paddy McAllister, 18 Bryan Young, 19 Tim Barker, 20 Chris Henry, 21 Paul Marshall, 22 Ian Whitten, 23 Jamie Smith.
Referee: Pascal Gauzere (France)
Assistant referees: Jean-Pierre Matheu (France), Eric Gauzins (France)