The game, which was scheduled last week but then postponed because of flooding risks in the Aube department, turned the visitors' way when Jeremie Brechet scored an own goal after the hour.
Bordeaux, who played and won their last French Cup final in 1987, will take on Evian Thonon Gaillard in the May 31 final at the Stade de France.
"We have often trailed our opponents in that compeition but we have had the necessary strenghth to fight back every time," defender Benoit Tremoulinas told Eurosport.
"We have been making a lot of efforts, all together. Bravo to the whole squad. There are some experienced players in that team and that has helped us prepare well for that game. But now there is a final to win."
Both teams will meet again on Saturday in the penultimate round of Ligue 1 matches with second-from-bottom Troyes looking to avoid relegation. Bordeaux, in eighth place, have nothing to gain or lose after dropping out of European contention midway through the season.
On Tuesday, Troyes went ahead after seven minutes when Jean-Christophe Bahebeck collected a through ball and coolly slotted the ball past Cedric Carrasso.
Cheick Diabate equalised four minutes before the interval with a fine volley at the near post.
Bordeaux were clearly the best side after the break and they were rewarded shortly after the hour when Brechet beat his own keeper as he was trying to clear the ball from his area.
Carrasso pulled a brilliant save to deny Marcos dos Santos from point-blank range as Bordeaux played it safe until the final whistle.