Marseille, who have won the competition a record 10 times but lost last year's final 2-1 to Paris Saint-Germain, will face Sochaux in the Stade de France showdown on May 12.
Sochaux, fourth in Ligue 1, wrecked the hopes of fourth-division amateurs Montceau-les-Mines with two extra-time goals on Tuesday.
"We were playing at home and had to grasp the opportunity to go back to the Stade de France and this year we'll bring back the trophy," Marseille coach Albert Emon told French TV.
Marseille dominated throughout but had to wait until the 27th minute to open the scoring through Franck Ribery.
The French international midfielder sidestepped a defender and fired in the far corner from the edge of the box, leaving Fabien Barthez stranded.
Ribery was replaced at halftime by Modeste M'Bami because of a thigh injury but Marseille kept their rhythm.
Ten minutes into the second half, 19-year-old midfielder Samir Nasri ran through the Nantes defence, advanced on goal and fed Toifilou Maoulida for a simple goal.
Djibril Cisse sealed Marseille's victory 14 minutes from time with his first touch after coming on as a replacement.
"It's cruel because the score is harsh," said Nantes coach Michel Der Zakarian, whose team are under threat of relegation for the first time since they joined the elite in 1963.