Castres qualified for the Top 14 semi-finals thanks to a 25-12 victory over Montpellier in their play-off at Stade Pierre-Antoine on Saturday.
Castres will now face Clermont in Nantes in a fortnight for a place in the final against either Toulon or Toulouse, who face off in the other semi-final at the same venue.
South African-born French international Antonie Claassen scored the only try of the game while former Sharks scrum-half Rory Kockott kicked 14 points to guide CO to victory.
Castres led 12-9 at the end of a dull first half characterised by conservative tactics handling errors.
Crucially, Montpellier started the second half with 14 men after Georgian hardman Mamuka Gorgodze was sent to the sin bin just before the interval for a high tackle on CO hooker Brice Mach.
Gorgodze's absence proved pivotal as Claassen broke off the back of a scrum shortly after the break. With the Montpellier back row missing a man it was left to fly-half François Trinh-Duc to stop the charging number eight. Claassen went right over the French international to score and give Castres a decent lead.
Kockott's conversion and a further penalty on the 50-minute mark were enough to secure the win.
"Their numerical inferiority cost them dear. We went into the ascendancy at that time," said Castres coach Laurent Labit.
"We know that we cannot compete with our semi-final opponents over a 26-game season, but perhaps in a one-off match we can do enough to worry them."
Montpellier skipper Fulgence Ouedraogo summed up his team's miserable afternoon.
"It was a long journey into hell. We gave away too many penalties, too many errors," he admitted.
Pens: Kockott 5
Pens: Paillaugue 4
Yellow card: Gorgodze
Castres: 15 Brice Dulin, 14 Romain Martial, 13 Paul Bonnefond, 12 Seremaia Baï, 11 Marc Andreu, 10 Remi Talès, 9 Rory Kockott, 8 Antonie Claassen, 7 Yannick Caballero, 6 Jan de bruin Bornman, 5 Rodrigo Capo Ortega, 4 Christophe Samson, 3 Karena Wihongi, 2 Brice Mach, 1 Saimone Taumoepeau.
Replacements: 16 Mathieu Bonello, 17 Mihaïta Lazar, 18 Matthias Rolland, 19 Ibrahim Diarra, 20 Thierry Lacrampe, 21 Daniel Kirkpatrick, 22 Romain Teulet, 23 Michael Coetzee.
Montpellier: 15 Benoît Sicart, 14 Timoci Nagusa, 13 Thomas Combezou, 12 Santiago Fernandez, 11 Taleta Tupuola, 10 Francois Trinh-Duc, 9 Benoit Paillaugue, 8 Alex Tulou, 7 Alexandre Bias, 6 Fulgence Ouedraogo, 5 Thibaut Privat, 4 Mamuka Gorgodze, 3 Maximiliano Bustos, 2 Agustin Creevy, 1 Mikheil Nariashvili.
Replacements: 16 Charles Geli, 17 Nahuel Lobo, 18 Mickael De Marco, 19 Johnnie Beattie, 20 Julien Tomas, 21 Hamish Gard, 22 Martin Bustos Moyano, 23 Vincent Pelo.
Venue: Stade Pierre-Antoine, Castres
Referee: Romain Poite