Bayonne came from behind to edge Lyon 20-19 on Saturday to keep their Top 14 survival hopes alive and relegate their hosts.
Toulon threw away a 19-point lead to be held to a draw at home to Castres in a crucial clash in the play-offs race.
Biarritz were given a scare at home to Racing, but came good in the final quarter to snatch victory and get themselves some breathing room.
Toulouse had to overturn a half-time deficit to get past Brive, who are now level with Bayonne on the edge of the relegation zone.
A strong first half was enough to see Stade Français past Perpignan, leaving the Catalans just three points clear of the drop zone.
Elsewhere, Bordeaux-Bègles did their survival hopes a power of good with a home victory over Agen.
Clermont 22-9 Montpellier
Bordeaux-Bègles 29-15 Agen
Lyon 19-20 Bayonne
Stade Français 35-31 Perpignan
Toulouse 30-21 Brive
Biarritz 22-13 Racing Métro
Toulon 25-25 Castres
Stade Toulousain 30-21 CA Brive Corrèze
Stade Ernest Wallon, Toulouse
Toulouse return to the top of the standings after briefly losing the lead to Clermont on Friday night, but they had to work very hard to overcome a Brive team fighting for survival.
Indeed the defending champs have been off-colour in recent weeks and were unconvincing again.
Toulouse built a healthy lead early on thanks to tries from Clement Poitrenaud and Vincent Clerc but the hosts were trailing 18-15 at the break after Brive replied through tries from full-back Scott Spedding and wing Jacques Boussuge, who struck just before the break.
But the Toulouse pack took control in the second half and Luke McAlister landed four more penalties to see his side home.
"After the first 20 minutes I thought we were going to score 40 points, but unfortunately we were hit by two tries just before the break," said Toulouse coach Guy Noves.
"I told the lads not to get too down on themselves and they would be alright. Thanks to the boot of McAlister we got the job done in the end.
"If we can keep up this level of enthusiasm and willingness to play an attacking game I can be confident for the rest of the season."
Tries: Poitrenaud, Clerc
Pens: McAlister 6
Tries: Spedding, Boussuge
Pens: Swanepoel 3
Yellow cards: Johnston (Toulouse - 4th min); Dubarry (Brive - 4th min); Mela (Brive - 69th min)
Toulouse: 15 Clement Poitrenaud, 14 Vincent Clerc, 13 Yann David, 12 Florian Fritz, 11 Yves Donguy, 10 Luke McAlister, 9 Luke Burgess, 8 Gillian Galan, 7 Thierry Dusautoir, 6 Yannick Nyanga, 5 Patricio Albacete, 4 Yoann Maestri, 3 Cencus Johnston, 2 Christopher Tolofua, 1 Daan Human.
Replacements: 16 Victor Paquet, 17 Jean-Baptiste Poux, 18 Gregory Lamboley, 19 Louis Picamoles, 20 Jean-Marc Doussain, 21 Yannick Jauzion, 22 Jean Bouilhou, 23 Yohan Montes.
Brive: 15 Scott Spedding, 14 Jacques Boussuge, 13 Arnaud Mignardi, 12 Riaan Swanepoel, 11 Ronnie Cooke, 10 Shane Geraghty, 9 Jean-Baptiste Pejoine, 8 Petrus Hauman, 7 Alexandre Bias, 6 Thibault Dubarry, 5 Arnaud Mela, 4 Julien Ledevedec, 3 Vassil Kakovin, 2 Guillaume Ribes, 1 Pablo Henn.
Replacements: 16 Virgile Lacombe, 17 David Khinchagashvili, 18 Retief Uys, 19 Poutasi Luafutu, 20 Olivier Caisso, 21 Mathieu Belie, 22 Jamie Noon, 23 Pat Barnard.
Stade Français 35-31 USA Perpignan
Stade Charléty, Paris
Stade Français keep their play-off hopes alive and maintain their unbeaten record at Stade Charléty but they almost threw at away as Perpignan made a thrilling comeback to claim a vital losing bonus point - but it could have been a lot more.
The result leaves USAP stuck in the middle of a five-way relegation tussle.
Departing forwards Rodrigo Roncero and Dimitri Szarzewski run out alone in their last home game in Paris with the French hooker in tears. Julien Dupuy was the hero for the hosts, landing seven penalties, including two from his own half.
Roncero scored on the half-hour mark as Stade Français raced to a 19-6 lead. But Perpigan wing Adrien Plante scored just before the break to leave the scores at 22-13 at half time.
George Smith scored soon after the restart while Dupuy continued to knock over kicks to put Stade 32--16 ahead.
Again USAP fought back via tries from Julien Candelon and Gavin Hume but fell short in the end, opting to kick a late penalty rather than push for a draw.
For Stade Français:
Tries: Roncero, Smith
Cons: Dupuy 2
Pens: Dupuy 7
Tries: Plante, Candelon, Hume
Cons: Hook 2
Pens: Hook 3
Stade Français: 15 Djibril Camara, 14 Paul Sackey, 13 Morgan Turinui, 12 Martin Rodriguez, 11 Julien Arias, 10 Felipe Contepomi, 9 Julien Dupuy, 8 Sergio Parisse, 7 Pierre Rabadan, 6 George Smith, 5 Pascal Pape, 4 Anton van Zyl, 3 David Attoub, 2 Dimitri Szarzewski, 1 Rodrigo Roncero.
Replacements: 16 Aled de Malmanche, 17 Rabah Slimani, 18 Scott LaValla, 19 David Lyons, 20 Jerome Fillol, 21 Jonathan Danty, 22 Hugo Bonneval, 23 Stanley Wright,
Perpignan: 15 Joffrey Michel, 14 Adrien Plante, 13 David Marty, 12 Rudi Coetzee, 11 Julien Candelon, 10 James Hook, 9 David Mele, 8 Henry Tuilagi, 7 Bertrand Guiry, 6 Damien Chouly, 5 Robins Tchale-Watchou, 4 Olivier Olibeau, 3 Kisi Pulu, 2 Guilhem Guirado, 1 Jerome Schuster.
Replacements: 16 Maxime Delonca, 17 Sebastien Taofifenua, 18 Romain Bezian, 19 Sebastien Vahaamahina, 20 Florian Cazenave, 21 Gilles Arnaudies, 22 Gavin Hume, 23 Romain Brison.
Lyon Olympique 19-20 Aviron Bayonnais
Stade Matmut, Lyon
Bayonne's second consecutive win sends Lyon to the ProD2 and keeps the heat on Brive, Perpignan, Biarritz and Bordeaux.
It was a drama-filled afternoon as a 70th minute penalty from Benjamin Boyet handed the visitors victory.
Wing Yoann Huget scored after just two minutes for the Basques but the rest of the half would belong to Lyon, who used the strong wind to their advantage.
LOU led 19-7 at half time thanks to a try from full-back Thibault Suchier and Lee Thomas's accurate boot.
But against the wind in the second half, the wheels came off for the hosts, who failed to trouble the scorers. Marvin O'Connor's try soon after the restart and Jacques-Louis Potgieter's boot set up a grandstand finish before Boyet won it for Bayonne.
Pens: Thomas 3
Tries: Huget, O'Connor
Cons: Potgieter 2
Pens: Potgieter, Boyet
Lyon: 15 Thibault Suchier, 14 Franck Romanet, 13 Lee Thomas, 12 Nicolas Raffault, 11 Remy Grosso, 10 Regis Lespinas, 9 Mickael Forest, 8 Juan Manuel Leguizamon, 7 Vincent Clement, 6 Eugene N'Zi, 5 Coenie Basson, 4 Jean Sousa, 3 Anthony Roux, 2 Antonio Testa, 1 Bogdan Balan
Replacements: 16 Jody Jenneker, 17 Guram Kavtidze, 18 Christian Short, 19 Nicolas Bontinck, 20 Ricky Januarie, 21 Laurent Tranier, 22 Mark van Gisbergen, 23 Tariel Ratianidze.
Bayonne: 15 Cedric Heymans, 14 Yoann Huget, 13 Sam Gerber, 12 Lionel Mazars, 11 Marvin O'Connor, 10 Jacques-Louis Potgieter, 9 Mike Phillips, 8 Marc Baget-Rabarou, 7 Dwayne Haare, 6 Guillaume Bernad, 5 Mark Chisholm, 4 Abdellatif Boutaty, 3 Neemia Tialata, 2 David Roumieu, 1 Aretz Iguiniz.
Replacements: 16 Francois Da Ros, 17 Victor Manukula, 18 Troy Flavell, 19 Jean Jo Marmouyet, 20 Cedric Garcia, 21Benjamin Boyet, 22 Joe Rokocoko, 23 Renaud Boyoud.
Union Bordeaux-Bègles 29-15 SU Agen
Stade André Moga, Bègles
UBB needed a win to keep their heads above water, and the led from start to finish for just their second win in eight games.
Three first-half tries gave the hosts a 19-0 lead at the interval. les Agenais came back strongly in the second period, but the horse had already bolted.
The result means Agen are sucked back into the relegation squabble, six points clear of the drop zone with two games to play. Next week's clash with Bayonne will be decisive.
Tries: Reihana, Avei, Toetu, Adams
Cons: Lopez 2, Fraser
Tries: Ahotaeiloa, Vaka
Yellow cards: Sheklashvili (Agen - 74th min)
Bordeaux-Begles: 15 Bruce Reihan , 14 Rafael Carballo, 13 Julien Rey , 12 Andrew Mailei, 11 Blair Connor, 10 Camille Lopez, 9 Heini Adams, 8 Matthew Clarkin, 7 Hugh Chalmers, 6 Justin Purll, 5 Adam Jaulhac, 4 Cameron Treloar, 3 Patrick-Albert Toetu, 2 Ole Avei, 1 Laurent DelBoulbes.
Replacements: 16 Fabien Rofes, 17 Hikairo Forbes, 18 Daniel Leo, 19 Louis-Benoit Madaule, 20 Julien Seron, 21 Gerard Fraser, 22 Felix Le Bourhis, 23 Bees Roux.
Agen: 15 Brice Dulin, 14 Saimoni Vaka, 13 Manu Ahotaeiloa, 12 Jamie Robinson, 11 Silvere Tian, 10 Conrad Barnard, 9 Maxime Machenaud, 8 Marc Giraud, 7 Adri Badenhorst, 6 Jean Monribot, 5 Pat O'Connor, 4 Dewald Senekal, 3 Gert Muller, 2 Jalil Narjissi, 1 Semisi Telefoni.
Replacements: 16 Julien Janaudy, 17 Laurent Cabarry, 18 Thibault Lassalle, 19 Antoine Erbani, 20 Alexis Bales, 21 Junior Pelesasa, 22 Miguel Avramovic, 23 Beka Sheklashvili.
Biarritz Olympique 22-13 Racing-Métro 92
Parc des Sports d'Aguilera, Biarritz
Biarritz took a step closer to safety as they bounced back from defeat in the Basque derby last week.
But the home fans were made to sweat as Racing held the lead on the hour mark.
The result sees BO climb to ninth, although they are only five points clear of the relegation zone.
Dimitri Yachvili kicked Biarritz into a 9-3 lead at half time but a try from Racing scrum-half Sebastien Descons put the visitors ahead 13-12 on 53 minutes.
A Damien Traille drop restored the hosts' advantage before a late Taku Ngwenya try sealed victory.
Pens: Yachvili 4
Pens: Descons 2
Yellow card: Leo'o (Racing - 25th min)
Biarritz:15 Iain Balshaw, 14 Taku Ngwenya, 13 Dane Haylett-Petty, 12 Damien Traille, 11 Ilikena Bolakoro, 10 Julien Peyrelongue, 9 Dimitri Yachvili, 8 Imanol Harinordoquy, 7 Talalelei Gray, 6 Benoit Guyot, 5 Pelu Taele-Pavihi, 4 Jerome Thion, 3 Francisco Gomez Kodela, 2 Arnaud Heguy, 1 Yvan Watremez.
Replacements: 16 Benoit August, 17 Sylvain Marconnet, 18 Manuel Carizza, 19 Raphael Lakafia, 20 Jean Pascal Barraque, 21 Marcelo Bosch, 22 Charles Gimenez, 23 Eusebio Guinazu.
Racing Metro:15 Francois Steyn, 14 Mirco Bergamasco, 13 Henry Chavancy, 12 Fabrice Estebanez, 11 Juan Imhoff, 10 Juan Martin Hernandez, 9 Sebastien Descons, 8 Jacques Cronje, 7 Antoine Battut, 6 Johnny Leo'o, 5 Francois Carl Van der Merwe, 4 Santiago Dellape, 3 Benjamin Salemane Sa, 2 Benjamin Noirot, 1 Eddy Ben Arous,
Replacements: 16 Thomas Bianchin, 17 Andrea Lo Cicero Vaina, 18 Karim Ghezal, 19 Jone Qovu, 20 Nicolas Durand, 21 Jonathan Wisniewski, 22 Alvaro Galindo, 23 Juan Pablo Orlandi.
RC Toulon 25-25 Castres Olympique
Stade Felix Mayol, Toulon
Toulon will be kicking themselves for coughing up two vital points to a direct rival play-offs race.
Toulon retain third place but missed an opportunity to book a home play off as Jonyy Wilkinson failed to convert a penalty at the death.
RCT scored three tries in the opening 15 minutes and led 25-6 after half-an-hour only to see Castres launch an incredible comeback to snatch a draw thanks to Romain Martial's try just before the break and Romain Teulet's metronomic boot.
It could have been as CO fly-half Pierre Bernard missed two drops in the final minutes.
The result leaves Castres fifth, four points behind Toulon but only one behind Montpellier.
Tries: Armitage, Giteau, Smith
Cons: Wilkinson 2
Pens: Wilkinson 2
Pens: Teulet 4, Bernard 2
Toulon:15 Benjamin Lapeyre 14 Alexis Palisson 13 Gaby Lovobalavu 12 Matt Giteau 11 David Smith 10 Jonny Wilkinson 9 Sebastien Tillous-Borde 1 Eifion Roberts 2 Sebastien Bruno 3 Carl Hayman 4 Bakkies Botha 5 Christophe Samson 6 Pierrick Gunther 7 Steffon Armitage 8 Joe van Niekerk
Replacements: 16 Jean Charles Orioli 17 Laurent Emmanuelli 18 Simon Shaw 19 Juan Martin Fernandez Lobbe 20 Geoffroy Messina 21 Luke Rooney 22 Fabien Cibray 23 Davit Kubriashvili
Castres: 15 Romain Teulet, 14 Romain Martial, 13 Thomas Sanchou, 12 Romain Cabannes, 11 Marc Andreu, 10 Pierre Bernard, 9 Rory Kockott, 8 Chris Masoe, 7 Yannick Caballero, 6 Ibrahim Diarra, 5 Joe Tekori, 4 Kiril Kulemin, 3 Luc Ducalcon, 2 Mathieu Bonello, 1 Yannick Forestier.
Replacements: 16 Marc-Antoine Rallier, 17 Saimone Taumoepeau, 18 Jannie Bornman, 19 Steve Malonga, 20 Seremaia Bai 21 James So'oialo, 22 Max Evans, 23 Karena Wihongi.