Moise Kean was the shoot-out hero for Paris Saint-Germain as they edged into the Coupe de France final by beating Montpellier on penalties after a Kylian Mbappe masterclass was not enough to finish the job in normal time.
Smarting after seeing their Champions League challenge ended by Manchester City and their Ligue 1 title defence severely dented by Rennes, two wonderful Mbappe goals, which sandwiched a similarly admirable Gaetan Laborde strike for Montpellier, appeared to have secured PSG's place in a seventh Coupe de France final in seven seasons.
But Andy Delort scored a late leveller to make it 2-2 in a dramatic finale to send an absorbing contest to penalties.
Five players from each team all delivered in a high-quality shoot-out, but the pressure proved too much for Junior Sambia, who blazed over the bar to give Kean the opportunity to seal a spot in the final against Monaco or fourth-tier Rumilly Vallieres as he fired into the top-left corner.
It became clear right from the off that PSG and Mbappe were in the mood and the talisman broke the deadlock in emphatic fashion in the 10th minute.
Mbappe controlled Idrissa Gueye's superb pass with an excellent first touch before rifling a left-footed finish into the roof of the net.
PSG continued to dominate without really testing Dimitry Bertaud in the Montpellier goal, and they were pegged back by a stunner from Laborde.
The forward finished off a Montpellier counter by arrowing a vicious strike into the top-right corner from a tight angle on the left side of the box, leaving Keylor Navas with no chance.
Pablo Sarabia curled narrowly wide shortly after the break, but PSG's advantage was restored courtesy of a wonderful individual goal from Mbappe.
He surged down the left wing and into the box before exquisitely dancing inside Hilton and arcing a shot beyond a helpless Bertaud.
Bertaud kept Montpellier in it, saving from Sarabia and then to deny Mbappe his hat-trick, with Navas required to make a diving save from Mihailo Ristic's drive at the other end before the hosts provided a late twist.
Shortly after Mbappe had been withdrawn, Laborde took advantage of poor PSG defending to slide in a low cross from the right, giving Delort the simple task of tapping in from point-blank range.
PSG introduced Neymar and he teed up Mauro Icardi, only for the Argentina striker to be denied by a goal-line clearance from Hilton. Danilo Pereira was then thwarted at the last as Montpellier clung on for a shoot-out that was settled as Kean kept his nerve after Sambia lost his.
What does it mean? PSG on track to retain cup
Trailing Ligue 1 leaders Lille by three points with two games to go, PSG face losing the title they have not failed to win since Monaco surprisingly dethroned them in 2016-17.
Had they come up short in the shoot-out, Mauricio Pochettino's men would have been looking at ending the campaign with only the Trophee des Champions in their grasp. Kean's decisive spot-kick made sure they still have a chance at something more tangible even if they cannot overhaul Lille.
Mbappe makes thrilling return
A calf injury kept Mbappe out of PSG's limp Champions League exit and their draw with Rennes, but his return to action here was quite breathtaking.
His performance was an 82-minute demonstration of why he is one of the most feared forwards in world football. All five of his shots hit the target and, on another night, he would have had more than a double to show for his efforts, which included seven key passes, three more than any other player.
Montpellier goalkeeper Bertaud did not deserve to be on the losing side. He made six crucial saves, defying PSG as they sought to put the game beyond the hosts, with his last-gasp stop from Danilo forcing the shoot-out.
PSG host Reims on Sunday knowing they must match Lille's result against Saint-Etienne to stay in the title hunt. Eighth-placed Montpellier are at home to Brest.