Paris Saint-Germain's treble aspirations remain alive after Kylian Mbappe's double led them to a late 3-1 win at Caen in the Coupe de France semi-finals.
Mbappe, back in the starting line-up after being an unused substitute in the 7-1 thrashing of Monaco on Sunday that clinched the Ligue 1 title due to illness, completed his double in the 81st minute as the defending champions set up a final that will pit the mega-rich PSG against amateur third-tier side Les Herbiers.
Caen finished the match with 10 men following Ismael Diomande's red card for a lunge on substitute Javier Pastore, and Christopher Nkunku, a stoppage-time replacement for Angel Di Maria, completed the scoring within two minutes of coming on.
Mbappe tucked Edinson Cavani's wayward shot home in the 25th minute to put PSG ahead, but Diomande, Caen's hero in their first ever run to the semis with crucial goals in the victories over Metz and Lyon, equalised before half-time – though a wicked deflection off Adrien Rabiot was required.
The match looked destined for extra time until Di Maria's backheel released Cavani to set up Mbappe once again, and Nkunku rounded off the win in the 95th minute.
Unai Emery's side consequently remain on course for an unprecedented fourth Coupe de France triumph in succession and third clean sweep of domestic trophies in four seasons, but it is unlikely to be sufficient to secure his long-term future in the capital.
PSG could have twice taken the lead in the opening 15 minutes, but Damien Da Silva made two important blocks to keep Cavani at bay.
However, a poor clearance from goalkeeper Brice Samba went straight to the opposition and the swift break that ensued ended with Mbappe steering Cavani's cross-cum-shot into an open net.
Caen were level in the 43rd minute, though. Diomande's shot took a wicked deflection off the leg of Rabiot and had enough power to get past the fingertips of Kevin Trapp in the bottom-left corner.
The hosts got a reprieve from the video assistant referee after Cavani volleyed home from Di Maria's looped pass in the 47th minute, with the Argentine deemed offside upon review.
Emery replaced Julian Draxler with Pastore in an attempt to bring some fresh ideas to his team, but it was Di Maria who proved the key to unlocking Caen's defence with a moment of magic that enabled Cavani to square for Mbappe to slot home nine minutes from time.
21 - Kylian Mbappé has scored 21 goals in all comps this season, only Antoine Griezmann has scored more (26) among the French players of the Top 5 European Leagues. Armada. pic.twitter.com/tUfSIQRuMR— OptaJean (@OptaJean) April 18, 2018
Diomande was shown a straight red card for his clumsy tackle on Pastore in the 90th minute and Caen's misery was compounded in stoppage time.
Nkunku drove in from the left and played a one-two with Dani Alves, sent on for Cavani in the closing stages, before curling a fine finish past Samba, ensuring PSG still have something to play for this season.
|Gattuso calls for more malice at Milan|
|Barcelona 1 Real Sociedad 0: Coutinho stunner lights up Iniesta´s farewell|
|Lazio 2 Inter 3: Spalletti´s men seal Champions League qualification with stunning comeback|
|Royals reach play-offs as Kings XI come up short|
|Nadal sees clearly after Rome rain is gone|
|Double whammy for Zverevs as Mischa bows out in Geneva|
|Atletico Madrid pay fitting tribute to tearful Torres|
|Hull FC claim derby spoils, Dragons off the bottom|
|Buzarnescu battles through as McHale impresses in Nuremberg|
|Neymar an artist who will not need special treatment - new PSG coach Tuchel|
|Atletico Madrid 2 Eibar 2: Torres bows out with a double|
|Napoli 2 Crotone 1: Milik and Callejon condemn visitors to the drop|
|Iniesta starts on Barcelona goodbye but Messi rested|
|Nadal rallies after rain break to dethrone Zverev in Rome|
|AC Milan 5 Fiorentina 1: Cutrone brace secures Europa League group stage spot|
|I think I made a fantastic decision - Garoppolo key to Sherman joining 49ers|
|FIFPro appeals to FIFA over Guerrero World Cup ban|
|Neymar made mistake joining PSG - Rivaldo|
|Simple for Simon as outstanding Yates extends Giro advantage|
|Ulster qualify for Champions Cup as Biggar makes history|
|Neymar tired of rumours and staying at PSG, president Al-Khelaifi claims|
|Beaten Halep calms injury concerns ahead of French Open|
|Van der Vaart´s Midtjylland nightmare set to end|
|It has been a crazy ride - Klopp proud of Liverpool ahead of Champions League showdown|
|Raonic pulls out of French Open|
|Liverpool youngster Alexander-Arnold not overwhelmed by England call-up|
|Torres captains Atletico Madrid on farewell|
|Otaegui claims second European Tour win at Belgian Knockout|
|Green: Warriors play best when we feel threatened|
|Daredevils dump out defending IPL champions Mumbai|
|Fan shows off Monk face tattoo on bottom|
|Bayern Munich chief Hoeness rules out spending spree|
|Fury to take on Albanian Seferi in Manchester next month|
|Mourinho mind games won´t distract from Manchester United´s paused progress|
|My motivation is intact - Ranieri open to offers following Nantes exit|
|Shields would probably have made All Blacks squad - Hansen|
|Willian fuels rift talk by hiding Conte with emojis in cup photo|
|Marquez extends lead at Le Mans as Dovizioso crashes again|
|Top-six mentality a boost to England´s World Cup hopes – Southgate|
|Dominant Svitolina retains in Rome as Halep sustains injury scare|
|I´d play for free! - Fifita desperate for State of Origin call-up|
|Plea satisfied with Nice exit as big changes beckon|
|Boateng open to leaving Bayern for move abroad|
|Napoli slam ´shameful and offensive´ Juventus celebrations|
|Red Star´s open-top bus goes up in flames|
|Klopp rejects Liverpool´s Champions League final underdogs tag|
|Root trusts batting form to ´click´ for England|
|Matic wants Man Utd to back Mourinho in transfer market|
|Walker out with eye socket fracture following Melbourne-Manly brawl|
|Don´t try it at home! - LeBron wows with game three passing|
|Dragons restore two-point lead, Sharks battle past Bulldogs|
|Any club would want Buffon, says PSG president|
|Villarreal renew Calleja contract after Europa League qualification|
|Talisca heading to Premier League, hints Besiktas boss|
|Celtics ´needed to get our butts whooped´ by Cavs, says Rozier|
|Bayern should have had a penalty, admits Boateng|
|NBA great Bill Russell released from hospital|
|When I play I´m Luca, not Zidane – Zinedine´s son distances himself from father|
|Barzagli: Buffon the greatest of all time|
|Indians ace Kluber becomes first in AL to seven wins|
|MLS Review: Two-goal Villa inspires NYC rout, Timbers stay hot|
|Kuznetsov sets Capitals´ playoff points record|
|Stevenson-Jack showdown ends in majority draw|
|Galatasaray win 21st Turkish title on final day|
|Cavaliers rout Celtics to cut series deficit to 2-1|
|Harvick holds off Suarez to win All-Star race and $1m|
|All Blacks name three new faces for France Tests|
|Mo Salah 15 years behind Cristiano Ronaldo – Klopp|
|Jaguares extend winning streak with Bulls thrashing|
|Nobody is bigger than PSG, says Al-Khelaifi amid doubts over Neymar|