The Sweden striker netted after five minutes with a splendid strike and sent the Paris club through to the April 19 showpiece match at the Stade de France with a last-gasp header after Olivier Veigneau had equalised in the 81st.
Ligue 1 leaders PSG, who are five points clear of second-placed Monaco, will face the winners of Wednesday's second semi-final between Lyon and second-division Troyes.
It will be the fifth League Cup final appearance for PSG, who have won the trophy three times.
"As soon as we conceded the goal, my team said to itself that we could not afford playing extra time and we went for the game," PSG coach Laurent Blanc told broadcaster France 2.
The visitors, who had thrashed Nantes 5-0 at home in the league two weeks ago, went ahead when the inspired Ibrahimovic struck a half-volley into the net after the ball had been mistakenly kicked into his path by Nantes goalkeeper Remy Riou.
PSG pushed for a second but Riou made amends for his error by parrying efforts from Thiago Silva and Ezequiel Lavezzi.
Nantes, who barely touched the ball in the first half but saw Marco Verratti save a Papy Djiloboji header on his goal line, staged a fight-back after the break.
The hosts were rewarded when Veigneau fired the ball home from a low cross by substitute Georges-Kevin Nkoudou.
However, their hopes of reaching the final were dashed nine minutes later when the magical Ibrahimovic powered home a header following a superb cross from Brazilian Lucas Moura.