Defending Top 14 champions Castres saw off the challenge of title rivals Montpellier 22-15 at Stade Pierre-Antoine on Friday.
A late penalty from Francois Trinh-Duc salvaged a bonus point for the visitors, and was enough to keep them atop the league standings, with Castres now moving up to fourth place pending the weekend's results.
The opening minutes were played at a ferocious pace, with Benoit Paillaugue and Rory Kockott exchanging penalties to leave Montpellier 9-6 to the good after 20 minutes.
Scottish international Jim Hamilton found himself watching from the sidelines for ten minutes after some off the ball handbags were picked up by the TMO, with Kockott levelling the scores from the resultant penalty.
The crucial try was scored just before half-time, as Brice Dulin capitalised on a powerful break from second-row Rodrigo Capo Ortega to exploit the space and go over from close range. Kockott added the extras and Castres led by seven points at the break.
The second-half was similarly frenetic, as errors and infringements stunted good attacking play. Trinh-Duc slotted a drop-goal shortly after the interval, before points machine Romain Teulet - retiring at the end of the season - took over the kicking duties and booted two further penalties to bolster Castres' lead.
It was Trinh-Duc's late three-pointer that ensured Montpellier didn't return home empty-handed, and they remain top of the pile in France.
Pens: Kockott 3, Teulet 2
Pens: Paillaugue 3, Trinh-Duc
Yellow card: Hamilton (foul play)
Castres: 15 Brice Dulin, 14 Max Evans, 13 Romain Cabannes, 12 Remi Lamerat, 11 Remy Grosso, 10 Remi Tales, 9 Rory Kockott, 8
Antonie Claassen, 7 Ibrahim Diarra, 6 Jan Bornman, 5 Rodrigo Capo Ortega, 4 Richard Gray, 3 Ramiro Herrera, 2 Brice Mach, 1 Yannick Forestier.
Replacements: 16 Mathieu Bonello, 17 Saimone Taumoepeau, 18 Christophe Samson, 19 Yannick Caballero, 20 Julien Tomas, 21 Daniel Kirkpatrick, 22 Romain Teulet, 23 Mihaita Lazar.
Montpellier: 15 Pierre Berard, 14 Timoci Nagusa, 13 Robert Ebersohn, 12 Wynand Olivier, 11 Rene Ranger, 10 Francois Trinh-Duc, 9 Benoit Paillaugue, 8 Alex Tulou, 7 Paul Grant , 6 Alexandre Bias, 5 Sitaleki Timani, 4 Jim Hamilton, 3 Nicolas Mas, 2 MickaŽl Ivaldi, 1 Mikheil Nariashvili
Replacements: 16 Thomas Bianchin, 17 Paea Faanunu, 18 Robins Tchale-Watchou, 19 Fred Quercy, 20 Jonathan Pelissie, 21 Anthony Tuitavake, 22 Lucas Dupont, 23 Yvan Watremez
Referee: Mathieu Raynal