France scrum-half Dimitri Yachvili landed 16 points with the boot as Biarritz ended English interest in the Challenge Cup with the defeat of Wasps.
Two early Nick Robinson penalties put the hosts ahead before Iain Balshaw crossed for the visitors' opening try.
Yachvili added the extras and a penalty before converting Eugene van Staden's try on half-time.
Biarritz pulled away but quick tries by Christian Wade and Ryan Davis drew Wasps level before Yachvili sealed it.
The result, a first ever win by a French team against Wasps at Adams Park, means three Top 14 sides are through to the final four of the competition.
Robinson got the hosts off to a good start but Balshaw's converted score gave Biarritz the initiative.
Yachvili made it 10-6 from the tee after Wasps conceded a penalty before Robinson pulled three points back.
Van Staden bundled his way over on the stroke of half-time to give the Basques an eight-point advantage at the whistle.
The Biarritz pack came into the ascendency after the break but Wasps looked dangerous on the counter-attack.
Yachvili's second penalty, after Tim Payne was caught offside, looked to have put Biarritz out of site at 23-9 up but Wasps sparked back into life.
Robinson's grubber popped up nicely for Wade out wide and he scooted over.
Almost as soon as the try was converted, Davis jinked his way under the posts, Robinson's conversion levelling the scores at 23-23 with a quarter of an hour to go.
But the hosts could not build on their score and when Jack Wallace tackled Yachvili illegally, the France international stroked the ball through the posts from 40m out.
Wasps: Southwell (c); Haughton, Daly, Davis, Wade; Robinson, Davies; Taulafo, Korshunov, Broster; Cannon, Birkett; Launchbury, Everard, Jones.
Replacements: Morris, Payne, McIntyre, Filipo, Harris, Wallace, Prydie, Lindsay.
Biarritz: Balshaw; Ngwenya, Gimenez, Haylett-Petty, Baby; Peyrelongue, Yachvili; Watremez, Guinazu, van Staden; E Lund,Taele-Pvihi; Lauret, August, Lakafia.
Replacements: Barraque for Ngwenya (58), Marconnet for Watremez (53), Terrain for Guinazu (40), Gomez Kodela for van Staden (40), Roidot for E. Lund (58), Harinordoquy for Lauret (33), Faure for Roidot (77).
Ref: John Lacey (Ireland).