Romain Ntamack tallied up 11 points with the boot as fellow France star Antoine Dupont crossed for hosts Toulouse's second try of the game late on.
Matthieu Jalibert kicked Bordeaux ahead with a penalty early on, though Matthis Lebel swiftly went over to put four-time winner Toulouse in front – a try teed up by Dupont and Ntamack.
Another Jalibert three-pointer had Bordeaux back ahead, but they then had to withstand 10 minutes being down to 14 men after Cameron Woki was sin-binned.
Yet having seen off the onslaught, Bordeaux succumbed before the break, with Ntamack nudging a penalty through the sticks.
More ill-discipline from Bordeaux enabled Ntamack to nose Toulouse firmly into the driving seat after the restart, though a third penalty from Jalibert brought Bordeaux back to within five points.
Yet Bordeaux's hopes were dashed when Dupont raced through to secure Toulouse's seventh appearance in a European Champions Cup final.
The showdown will be played at Twickenham on 23 May (AEST), potentially in front of a crowd of up to 10,000 spectators.
Leinster and La Rochelle face off in the second semi-final on Monday (AEST).