But Biarritz soon started to find their feet and were ahead when Yachvili charged down Barkley's delayed kick, collected the ricochet and touched down under the posts.
Their second try appeared fortuitous with an earlier forward pass not penalised but nonetheless it was expertly finished off with Balshaw skinning Michael Claassens on the outside before eventually touching down under the posts.
Bath's task was made that much harder when prop Duncan Bell was yellow-carded but the visitors ended the half well with late pressure but failed to cross.
Balshaw grabbed his second of the game barely a minute after the restart, with a diagonal run taking him through the Bath defence and under the posts for Biarritz's third converted try.
But Bath responded well and lock Hooper bundled over from close range to give them their first points of the game.
With Ulster winning comfortably against Aironi, the pressure was on Biarritz to grab the vital fourth try to top the group and they soon got their wish.
American Ngwenya scored it out on the right wing, going over in the corner to give Biarritz a 26-5 lead.
But back came Bath again and Biggs bundled over from close range after good work from fellow wing Matt Banahan, replacement Sam Vesty converting the try.
And in the dying moments of the game, Biggs got his second of the match, which Vesty again converted to reduce the deficit to just seven points.
Bath coach Steve Meehan: "The rugby itself was fairly evenly shared. At times we got on the front foot and played some good attacking rugby.
"If you look only at our win-loss count in this pool, it looks poor. But we performed better than that indicates.
"In the second-half, both of their tries came from poor tactical kicking that put us under pressure. But we finished off well and kept working for the full 80 minutes. We thoroughly deserved those three tries.
"It's frustrating to have lost, but you must be optimistic after performances like that."
Biarritz wing Iain Balshaw: "We completed our objective that we set at the start of the game. We knew we had a chance of a home quarter-final and delivered it.
"It was a stern test from Bath and it was probably very good to watch. We got four tries but in the last 10 minutes we were probably looking to get a few more tries and were swaying both ways.
"At half-time we said they would come out and play and it was important that we started the way we finished the first half. We took our foot off the gas but are pleased with the result."
Replacements: Guyot for Vahafolau (41), Thion for Taele-Pvihi (53), Terrain for August (57), Watremez for Coetzee (65), Mignardi for Traille (67), Guinazu for Marconnet (67), Bolakoro for Balshaw (76). Not Used: Lesgourgues.
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.