Marco Verratti scored his first Paris Saint-Germain goal in 17 months with a strike from the edge of the box in the 29th minute to set Thomas Tuchel's side on their way.
Mbappe, who had scored in his previous five games for club and country, initially squandered the chance to double the lead as Ciprian Tatarusanu saved his retaken effort midway through the second half.
Nantes had Kalifa Coulibaly sent off for two yellow cards and Mbappe atoned for his earlier penalty miss when presented with another opportunity from 12 yards five minutes from the end before substitute Dani Alves added a third in stoppage time.
When Tuchel's side did find a way through in the first period, it was from an unlikely source as Verratti scored his first club goal of the season by steering a shot home from the edge of the box following Mbappe's lay-off.
Mbappe was fortunate not to be booked for diving when trying to claim a foul off Edgar Ie, with referee Francois Letexier giving a goal-kick and then awarding nothing at the other end when Nantes had a legitimate penalty claim.
Coulibaly got the blind side of Thiago Silva, who appeared to clip the striker, yet Nantes' appeals were ignored.
PSG lost Marquinhos to injury before half-time and could have lost their lead too as Coulibaly evaded Presnel Kimpembe but headed wide.
Referee Letexier further angered the Nantes players in the second half when he gave PSG a penalty for handball against Nicolas Pallois, but only after consulting VAR.
Pallois had his back turned to Kimpembe and was sorting out his feet when the ball struck his arm, yet the spot-kick was awarded.
Mbappe initially stroked the ball into the bottom-left corner of the net but was ordered to retake it due to players encroaching, with Tatarusanu again diving to his left and saving the second effort.
Yet any hopes of a Nantes comeback were extinguished when Coulibaly, booked earlier for raising his arm to Juan Bernat, received a second yellow for catching Silva with his studs 18 minutes from time.
Alves then won a penalty having been tripped by Diego Carlos and Mbappe would not be denied again, steering his effort into the bottom-left corner once more.
And Alves got in on the act in stoppage time, lofting a half volley over Tatarusanu, much to the delight of the injured Neymar watching in the stands.
What does it mean? PSG into the final, and Neymar on his way back
Wednesday was a good day for PSG as Neymar, out since January with a foot injury, was back in training. The Brazilian watched on in the French capital as his team advanced to yet another Coupe de France final, a game Neymar may be fit for later this month.
Verratti the unlikely hero
When Verratti scored for Italy last week, it was his first goal for club or country since November 2017. Yet the midfielder, more renowned for his distribution and ball-winning qualities, is experiencing a relative purple patch. He dispatched the finish for his goal with all the confidence of a man more accustomed to scoring frequently and then spotted Alves to provide the assist for the third PSG goal in a fine all-round display.
Halilhodzic made to eat his words
In the build-up to this contest, Nantes coach Vahid Halilhodzic slammed PSG's players for acting like children when they exited the Champions League in improbable circumstances at the hands of Manchester United. This was not a drubbing to truly make Halilhodzic feel embarrassed, but his pre-match words may have just given PSG that little bit of extra inspiration.