Theo Hernandez struck a 90th-minute winner as France came from two goals down to beat Belgium 3-2 and set up a meeting with Spain in the UEFA Nations League final after an enthralling game at Juventus Stadium.
Trailing 2-0 at half-time thanks to goals from Yannick Carrasco and Romelu Lukaku, Les Bleus looked down and out at the interval.
But a rousing comeback performance ensured their place in Sunday's showpiece final - helping to banish the painful memories of their premature European Championship exit in the process.
World Cup Qualification UEFA
Benzema and Mbappe on target as France down Finns
Didier Deschamps' side made a slow start as the lively Kevin De Bruyne fired a warning with just four minutes on the clock, but Hugo Lloris did well to keep out his venomous shot.
However, the France captain was beaten twice in four first-half minutes as the Red Devils clicked into a higher gear.
Lloris was still reeling from being caught out at his near post from Carrasco's daisy-cutter when he failed to keep out Lukaku's tidy effort from the angle.
France played with much more intensity after the restart, and when Kylian Mbappe set up Antoine Griezmann on a plate, you were expecting the net to bulge, but somehow the Atletico Madrid forward failed to apply the finish.
Karim Benzema would make no such mistake moments later as he swivelled to make space for the shot and rifled into the bottom corner to halve the deficit.
Griezmann helped to make amends for his glaring miss by winning a penalty, which was converted by the ice-cool Mbappe as parity was restored.
But the drama was far from over.
With just three minutes remaining, Belgium thought they had won it with a goal against the run of play - but Lukaku was found to be in an offside position by VAR.
And then just moments later, after Paul Pogba had struck the crossbar with a brilliant free-kick, Theo Hernandez hammered home the winner for France - his first goal for his country - to complete a memorable comeback.
TALKING POINT - The Nations League produces yet more drama
It's the competition that keeps on giving. Wednesday night provided a thrilling game between Spain and Italy - but it had nothing on this. Belgium were looking to exact revenge on France for the 2018 World Cup semi-final defeat, and for 45 minutes they were by far the better side, exposing the weaknesses in France's team which have been evident over the last few weeks and months.
Rather than trying to maintain that level, however, Roberto Martinez's side went into their shell after the restart, and, ultimately, their ageing defence was unable to protect their two-goal lead as Pogba and, in particular, Mbappe turned on the heat. With just three goals in 14 appearances before this game, the latter had faced criticism for his international performances. But he silenced his doubters by taking the contest by the scruff of the neck, drawing France level.
The next goal would prove crucial, but judging Belgium on their past record in big games, France were always the favourites, and on the balance of play, they did just enough and can look forward to a mouth-watering showdown with Spain.
It's another missed opportunity for Belgium's 'Golden Generation', who must be wondering if their time will ever come.
MAN OF THE MATCH - Kylian Mbappe (France)
The man for the big occasion, Mbappe registered an assist and scored - not a bad way to mark your 50th appearance.
Belgium: Courtois 6, Alderweireld 6, Denayer 6, Vertonghen 6, Castagne 6, Witsel 6, Tielemans 6, Carrasco 7, De Bruyne 8, Hazard 6, Lukaku 8.. subs: Vanaken 5, Trossard 5, Batshuayi N/A
France: Lloris 5, L Hernandez 6, Varane 6, Kounde 8, T Hernandez 8, Pavard 6, Rabiot 6, Pogba 8, Griezmann 7, Mbappe 9*, Benzema 7.. subs: Tchouameni 5, Dubois N/A, Veretout N/A.
4' - What a save! Lloris to France's rescue! Lukaku drives down the right and fires a low cross into the penalty area. The defence makes a mess of a clearance. It drops to De Bruyne, whose venomous shot is somehow kept out by the strong hand of Lloris!
37' - GOAL! Belgium 1-0 France (Yannick Carrasco): Belgium find a way through! Carrasco, after receiving the pass from De Bruyne, carves inside off the left channel. He accepts the invitation to have an effort and beats Lloris at his near post with the low shot from an acute angle!
41' - GOAL! Belgium 2-0 France (Romelu Lukaku): Two Belgian goals in four minutes! De Bruyne plays the pass, Lukaku allows it to run across his body and makes no mistake, thumping it past Lloris! How clinical is that!
62' - GOAL! Belgium 2-1 France (Karim Benzema): Les Bleus have their reward for a strong spell! Mbappe skips past a couple of challenges with his quick feet before rolling it into the path of Benzema. He swivels to create the space for a shot and rifles it into the bottom corner. Game on!
79' - GOAL! Belgium 2-2 France (Kylian Mbappe, pen): No mistake from Mbappe as he lifts an emphatic penalty into the top corner! The perfect spot-kick!
88' - Goal ruled out! Lukaku, who has barely had a touch in the second-half, slots it home from Carrasco's cross... have Belgium won it?! No! It's been chalked off for offside!
90' - Off the crossbar! Pogba is a whisker away from winning the game for France with a quite brilliant free-kick, but it crashes against the woodwork!
90' - GOAL! Belgium 2-3 France (Theo Hernandez): Theo Hernandez has completed the France comeback with his first goal for his country! And it's a fine, clean strike from just inside the box that wins it for Les Bleus!
- France have won their first game after trailing by two or more goals at the half-time since May 2012 against Iceland in a friendly game (3-2).
- Kevin De Bruyne is the first player to deliver two assists in the same game against France since Lionel Messi with Argentina in the round of 16 of the 2018 World Cup (also two).
World Cup Qualification UEFA
Wales secure play-off spot with draw against Belgium
World Cup Qualification UEFA
Belgium ease to win over Estonia to confirm World Cup spot