Nevin Spence is tackled by Iain Balshaw and Damien Traille
Ulster boosted their hopes of Heineken Cup quarter-final qualification with a last-gasp win over Biarritz after a dour Pool Four struggle at Ravenhill.
With the advantage of the wind, Biarritz led 6-0 at half-time thanks to two Dimitri Yachvili penalties.
Ian Humphreys replied with two penalties in the second half and then landed a third penalty from inside his own half to win the game on 78 minutes.
Ulster will clinch a quarter-final place if they beat Aironi next week.
Saturday's results leave Biarritz and Ulster level on 17 points at the top of the group.
Biarritz will top the group if they clinch a bonus-point win over Bath in France.
But irrespective of other permutations, Ulster will be guaranteed a place in the knockout stages for the first time since their triumph in the 1999 competition if they win in Italy.
The home side enjoyed the majority of the possession and territorial advantage in the first half but were unable to convert a couple of try-scoring opportunities into points.
Fly-half Humphreys had an early chance to put Ulster ahead but his penalty fell well short after the ball was held up in the wind.
Biarritz's cause was undermined when second row Erik Lund was sent to the bin for interfering with Ruan Pienaar when the scrum-half tried to take a quick penalty but the visitors survived the 10 minutes without conceding points.
Yachvili was successful with his two first-half penalty attempts in the 19th and 39th minutes despite the continuous heavy rain at the Belfast venue.
The first was awarded against BJ Botha at the scrum and the second after Ulster had fouled up their own lineout.
In between, Ulster responded with a great piece of play off a line-out when a Paddy Wallace inside pass released Simon Danielli and when the Scotland international's long pass found Adam D'Arcy on the right wing it looked as if the Ulster full-back was going to make the corner.
However, a great covering tackle from Iain Balshaw managed to push D'Arcy's foot into touch and a great chance for the home side was lost just prior to Lund's return.
On the half hour Ulster had another opportunity to score which again involved D'Arcy.
This time a cross-kick from Wallace was superbly kept in touch by Dan Tuohy who flicked the ball back into space to D'Arcy and the full-back's knee pushed the ball towards the try line in the right corner.
D'Arcy's effort to get the touchdown, which went to the TMO, saw a combination of Balshaw and a knock-on from D'Arcy see the chance go begging.
Humphreys reduced the deficit to three points with a 48th-minute penalty from all of 55 metres and added a second with a kick from in front of the posts ten minutes later after Magnus Lund was penalised at a ruck.
Damien Traille hit the post with a drop-goal attempt for Biarritz and then the French side were held up just short of the line after a period of sustained pressure which saw them go through 17 phases.
Humphreys emerged as the hero with his long-range effort with two minutes remaining.
Samiu Vahafolau was penalised at a ruck for holding on to the ball and Humphreys held his nerve to put the ball straight through the sticks and send Ravenhill into raptures.
Ulster: A D'Arcy; A Trimble, N Spence, P Wallace, S Danielli; I Humphreys, R Pienaar; T Court, R Best (Capt), BJ Botha; J Muller, D Tuohy; S Ferris, W Faloon, P Wannenburg
Replacements: N Brady for Best (74), D Fitzpatrick for Botha (69), C Henry for Faloon (72).
Not Used: B Young, T Barker, P Marshall, I Whitten, D Mcllwaine.
Biarritz: D Haylett-Petty; T Ngwenya, M Bosch, L Tranier, I Balshaw; D Traille, D Yachvili; E Coetzee, B August, S Marconnet; J Thion, E Lund; M Lund, I Harinordoquy, R Lakafia.
Replacements: R Terrain, Y Watremez for Coetzee (67), A Barozzi, P Taele, S Vahafolau, J Peyrelongue, M Bond for Bosch (7), I Bolakoro for Balshaw (55).
Not Used: R Terrain, A Barozzi, P Taele-Pvihi, S Vahafolau, J Peyrelongue.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.