Ibrahimovic struck his first goal in this season's competition to put PSG ahead after just five minutes at the Stade de la Beaujoire.
Olivier Veigneau responded with an equalizer nine minutes from the end but Ibrahimovic popped up with his second of the match, and 31st of the season, in the final minute to send the three-time winners through to April's final at the Stade de France.
"It was a real cup tie, the script is often like that," said PSG coach Laurent Blanc afterwards.
"In the first (period) we led 1-0. We had chances to double our lead but didn't.
"In the second half Nantes applied more pressure, were more involved, created some chances and equalized.
"But in the last 10 minutes my team stepped up a gear.
"We're in the final, that's what we were looking for and we've done it."
With PSG already eliminated from the French Cup, Blanc fielded a strong side that featured just three changes from the team that beat Bordeaux 2-0 on Friday evening.
Ezequiel Lavezzi was drafted in to replace the injured Edinson Cavani on the left of an attacking three, while Marco Verratti, back from suspension, was restored to his midfield duties at the expense of Javier Pastore.
Reserve goalkeeper and cup-specialist Nicolas Douchez came in for Salvatore Sirigu, but new recruit Yohan Cabaye was again only listed among the substitutes.
Having swept the two league encounters this season, including a 5-0 demolition at the Parc des Princes just over a fortnight ago, PSG almost struck first blood just four minutes in as Lavezzi hit the outside of the post following Blaise Matuidi's burst into the box.
Heavy rain made for a slick playing surface at La Beaujoire and it played a factor just moments after that initial reprieve as a poor clearance from Nantes keeper Remy Riou gifted Ibrahimovic the opening goal.
Riou appeared to slip as he went to launch Issa Cissokho's backpass upfield, succeeding only in sending the ball straight to Ibrahimovic with the Swede firing a first-time left-foot effort from 30 yards over the head of the unfortunate Nantes keeper.
Thiago Silva nearly added a second for the visitors inside the opening 15 minutes but Riou managed to divert the Brazilian's fierce drive from a narrow angle away to safety.
Lavezzi then found himself in behind the Nantes backline but was thwarted by the legs of Riou on the half hour.
The hosts almost drew level from their first genuine opportunity as Papy Djilobodji rose to meet Vincent Bessat's corner only for a perfectly placed Verratti to clear off the line with referee Laurent Duhamel waving away protests for a handball.
A fractious second half produced little in the way of goalmouth action until Veigneau netted an 81st-minute equaliser for Nantes as he slammed home substitute Georges-Kevin Nkoudou's cross.
But with extra time beckoning the hosts were undone as Ibrahimovic escaped the attentions of Oswaldo Vizcarrondo to head in Lucas' cross from the right on 90 minutes and punch PSG's ticket to the Stade de France.
Awaiting PSG in the final will be the winners of Wednesday's tie at the Stade de Gerland between Lyon and Ligue 2 outfit Troyes.