Montpellier came into the meeting as strong favourite, having finished top of the table at the end of the regular season and Vern Cotter's men were high on confidence after a resounding 40-14 semi-final win over Lyon.
Its opponent, by contrast, had only taken the sixth and final play-off berth, edging out Toulouse and Racing 92 en route to the decider in Paris.
Montpellier was desperate to end the club's wait for a Top 14 title, having lost the 2011 final, but its agonising drought goes on while Castres were left to celebrate a fifth crown - and their second in six years.
Benjamin Urdapilleta starred for the victor, slotting all of his efforts from the tee to finish with 19 points, including converting tries from Julien Dumora and Steve Mafi at the end of either half.
Montpellier, meanwhile, was left to rue its ill-discipline and inability to match Urdapilleta's efficiency with the boot - both Ruan Pienaar and Francois Steyn guilty of spurning opportunities - as Castres survived the fightback that threatened to materialise early in the second half.
Pienaar wasted the chance to draw first blood inside five minutes as he erred from the tee, and Urdapilleta showed him how it was done by making no mistake shortly afterwards.
Steyn's monster effort soon had Montpellier back level but the favourites continued to show a damaging lack of discipline, Urdapilleta punishing two further transgressions to open up a six-point lead with a quarter of the game gone.
That advantage was stretched to nine on the half-hour, after Steyn had sent a penalty from inside his own territory narrowly wide, and when Castres were pinged much closer to the posts Pienaar took over duties and pulled his side back to within three.
Montpellier's scrappy opening period was summed up shortly before the interval as a botched line-out resulted in excellent field position for Castres, who worked the ball right for Dumora to barge over, Urdapilleta adding the extras to maintain his unblemished record.
One sensed Cotter's men would not be so sloppy after the resumption and so it proved, twice turning down kickable opportunities before winning a penalty try once Loic Jacquet had been sin-binned for the latest in a succession of cynical fouls from the retreating Castres.
The response from Christophe Urios' side was impressive, however, as it charged back into Montpellier territory and drew another penalty in front of the posts, from where Urdapilleta was never going to miss.
The same could not be said of Pienaar when he erred from the 10-metre line with 13 minutes remaining, and the game was up when Mafi crashed over to allow Castres' celebrations to begin in earnest.