In a repeat of the European Champions Cup final, Toulouse will meet La Rochelle in France's Top 14 final after seeing off Bordeaux-Begles 24-21 in Lille on Saturday.
Romain Ntamack scored the opening try in the fourth minute for Toulouse but the France fly-half was later stretchered off with a suspected concussion after a late tackle from Ulupano Seuteni that resulted in a red card for Bordeaux's Samoan centre.
Thomas Ramos scored a second try for Toulouse in the second half and added 10 points from the boot.
Ben Lam scored twice for Bordeaux who were leading prior to Seuteni's 58th minute expulsion.
La Rochelle reached their first final with a 19-6 win over Racing 92 on Friday.
The final takes place at the Stade de France in Paris on June 25 with Toulouse looking to repeat their success in the European final when they beat La Rochelle 22-17.
"We have already played La Rochelle four times this season. It will be a different context than the European Cup final," said Ramos.
"It will be in France, we will have more supporters, too.
"We will see what will happen with Romain and the concussion protocol. If I have to play 10, it's a position that I know."
Saturday's face-off at the neutral Stade Pierre-Mauroy in Lille was itself a repeat of the European Champions cup semi-final when Toulouse outmuscled a Bordeaux side that had been badly hit by Covid-19 in the build-up.
Toulouse got off to a flying start when Ntamack capitalised on a clearance from fellow half-back Antoine Dupont to canter home from halfway for the first score with just four minutes gone.
Ramos added the conversion and a penalty to send the champions into an 8-0 lead but Bordeaux struck back almost instantly.
A rumbling run from Argentine flanker Guido Petti ended under the Toulouse posts but with Mathieu Jalibert pulling the strings the ball moved right and then left, opening up space on the flank for Lam to cross for the try which was converted by Jalibert.
Ramos added two more penalties as Toulouse edged a physical first-half.
Trailing 14-7 at the break, Bordeaux clawed back three points soon after the restart when Jalibert found his mark from just inside halfway.
Ten minutes later, Bordeaux were in the lead for the first time, a turnover by Jalibert sparking a lengthy series of phases as their forwards clattered into the Toulouse defence.
Flanker Cameron Woki was halted five metres from the line but when the ball was spun left, Lam was again on hand to scuttle across the paint for the try.
With Jalibert missing the conversion Bordeaux only led 15-14.
- Red card -
The game changed three minutes later, though, just before the hour when Seuteni hammered Ntamack with a tackle that was late, high and reckless.
The two clashed heads leaving Ntamack motionless for some moments. He was stretchered from the field, with a likely concussion, his neck and head in a brace but conscious and moving, and is now likely to miss the final.
Seuteni was handed a red card and Ramos converted the penalty to put Toulouse back in front.
Jalibert responded straight after, though, to nose 14-man Bordeaux back in front before Ramos slid over to put Toulouse six points clear.
Bordeaux had the chance to turn things around four minutes from time when they were awarded a penalty in front of the Toulouse posts.
Jalibert, however, chose to take the three points rather than kick for touch and try for the try.