Luke McAlister scored 27 points for the victors in a superb all-round display which took his side up to third place.
Toulon slipped behind Clermont Auvergne, who won on Friday night, on points difference after the loss.
Shontayne Hape scored the only try of the game as Montpellier shaded Castres 19-12 at the Stade Yves-du-Manoir to go fourth.
Grenoble had a brace from Nigel Hunt to thank for leading them to a 27-13 win over Racing Metro.
Perpignan downed Mont-de-Marsan at the Stade Aime Girl 15-6, with all the points coming from the boot of Wales back James Hook.
Agen won a third match in a row 19-15 against Bordeaux-Begles, with Welsh centre Jamie Robinson crossing for the game's only try.