Clermont moved momentarily level on points with Racing 92 and Toulouse at the top of the Top 14 after their 28-17 win over Castres.
Last season's European Cup finalists had lost their last five games in all competitions coming into Saturday's game, making this a much-needed victory.
Flip van der Merwe started the scoring in the 13th minute after he crashed over from short range, following up a break from new signing Isaia Toeava on his debut and Noa Nakaitaci, with Brock James converting.
Rory Kockott failed to respond with a 50-metre drop-goal and Benjamin Urdapilleta missed a penalty either side of James extending the lead to 10-0 with three points of his own.
Multiple handling errors began to affect any chance Castres had of troubling les Jaunards and a second James penalty ensured that Clermont had a healthy lead by half-time, up 13-0.
Castres desperately needed a score and it came through Rémi Lamerat after he broke a poor tackle from Peceli Yato and danced along the touchline to finish by the corner, Urdapilleta converting.
James' third penalty stretched the Clermont lead but an interception try from David Smith, minutes after Castres blew a huge chance from Geoffrey Palis, made the contest a close affair at 16-14.
The hosts were now on top with some thrilling rugby on attack from inside their own half, winning a penalty under the Clermont posts which Urdapilleta converted to make it 17-16.
Both sides were reduced to 14 men after a high tackle from Palis on David Strettle was followed by an illegal clearout by Fritz Lee.
Only a try-saving tackle from Smith could stop David Strettle from finishing in the corner but Clermont wouldn't be denied, Aurélien Rougerie fending off a tackle and getting down the outside before releasing James on his inside for Clermont's second try, the fly-half converting his own score to make it 17-23.
Enzo Sanga's long pass out wide then helped Sébastien Vahaamahina wrap up Clermont's win two minutes from time with their third try.
Tries: Lamerat, Smith
Cons: Urdapilleta 2
Yellow Card: Palis
Tries: Van der Merwe, James, Vahaamahina
Con: James 2
Pens: James 3
Yellow Card: Lee
Castres: 15 Geoffrey Palis, 14 Sitiveni Sivivatu, 13 Thomas Combezou, 12 Rémi Lamerat, 11 David Smith, 10 Benjamin Urdapilleta, 9 Rory Kockott, 8 Johnnie Beattie, 7 Piula Faasalele, 6 Alexandre Bias, 5 Rodrigo Capo Ortega, 4 Christophe Samson, 3 Karena Wihongi, 2 Brice Mach, 1 Antoine Tichit
Replacements: 16 Marc Antoine Rallier, 17 Mihaita Lazar, 18 Richie Gray, 19 Yannick Caballero, 20 Julien Seron, 21 Julien Dumora, 22 Rudi Wulf, 23 Eric Sione
Clermont: 15 Isaia Toeava, 14 David Strettle, 13 Aurélien Rougerie, 12 Hosea Gear, 11 Noa Nakaitaci, 10 Brock James, 9 Ludovic Radosavljevic, 8 Fritz Lee, 7 Alexandre Lapandry, 6 Peceli Yato, 5 Sébastien Vahaamahina, 4 Flip van der Merwe, 3 Dan Kotze, 2 Benjamin Kayser, 1 Raphael Chaume
Replacements: 16 John Ulugia, 17 Vincent Debaty, 18 Loic Jacquet, 19 Camille Gerondeau, 20 Enzo Sanga, 21 Camille Lopez, 22 Albert Vulivuli, 23 Clément Ric
Referee: Mathieu Raynal