Ulster's five-year unbeaten home record in the Heineken Cup was ended by Biarritz - and with it went any hope of qualifying for the quarter-finals.
Ulster (5) 8
Try: R Best
Biarritz (8) 24
Tries: Bobo, Balan
Pens: Yachvili (3)
Drop Goal: Peyrelongue
An early Rory Best try put Ulster ahead but the visitors hit back, and Sereli Bobo's 30th minute try helped the French team to an 8-5 half-time lead.
David Humphreys levelled to pass the 500-point mark in the Cup, but Biarritz surged clear after Petru Balan's try.
Two Yachvili penalties and a Julien Peyrelongue drop-goal sealed victory.
Ulster went on the attack from the start and were rewarded when Best finished off great forward play with an unconverted try after five minutes.
The try stirred the French side into action and they went on to dominate the next 30 minutes.
Yachvili sent over a penalty but went on to miss a three-point chance before Biarritz scored a deserved touchdown.
Philippe Bidabe set up wing Bobo who went over in the corner on 30 minutes, although Yachvili failed with the conversion attempt.
Biarritz flanker Thierry Dusautoir was sin-binned five minutes before the break for deliberately slowing the ball down.
Ulster took advantage and pressed for a second try but made vital errors close to the line.
Yachvili missed another penalty at the start of the second half but Humphreys made no mistake to make it all-square, and in the process become the fifth player to go past 500 points in the competition.
Adam Larkin replaced the injured Humphreys seconds before Biarritz scored their second try after 63 minutes.
Another Ulster error at the set-piece gifted the ball to the opposition and prop Balan drove over for a converted try to make it 15-8.
Yachvili kicked over two penalties before Julien Peyrelongue sent over a drop-goal to seal the points for the French champions.
Both sides finished with 14 men after Ulster lock Justin Harrison and Biarritz counterpart Jerome Thion were given sent to the sin-bin in the dying seconds.
Ulster: Cunningham; Bowe, Maggs, Steinmetz, Trimble; Humphreys, Boss; Young, R Best, S Best; Harrison, McCullough; N Best, Ferris, Wilson.Replacements: Brady, J Fitzpatrick, Frost, McMillan, Campbell, Larkin, Topping.
Biarritz: Brusque; Gobelet, Bidabe, Arramburu, Bobo; Peyrelongue, Yachvili; Balan, August, Lecouls; Thion, Couzinet; Dusautoir, Harinordoquy, Lievremont (capt).
Replacements: Noirot, Lealamanua, Booyse, Betsen, Dupuy, Lison, Dambielle.
Referee: Dave Pearson (RFU).