France inflicted Grand Slam heartbreak on Wales in a Parisian thriller to keep alive their Six Nations title hopes.
Brice Dulin crossed in injury time to clinch an epic bonus-point win and take the tournament to the final match next weekend, when they play Scotland.
Wales are five points clear at the top, but have now played their final game.
France were down to 14 men after 68 minutes when Paul Willemse was red carded but two Welsh yellows helped them erase a 10-point deficit to win.
Wales picked up a losing bonus point, which means to have any chance of winning the title France must defeat Scotland in Paris next Friday with an attacking bonus point.
It would then come down to points difference, which currently favours Wales 61 to 41.
A fantastic first half saw the two sides locked at 17-17 with Romain Taofifenua and Antoine Dupont's tries matched by Dan Biggar and Josh Navidi scores.
The second half was even more astonishing, with France second row Willemse red carded for sticking his fingers into the eye of Wales prop Wyn Jones as he savagely - and illegally - cleared him out at a ruck.
But France actually finished with a man advantage for the final eight minutes after Taulupe Faletau and Liam Williams were sin-binned in a pulsating and chaotic finale.
And Wales' 10-point lead was not enough, as tries from captain Charles Ollivon and Dulin left Wayne Pivac's side stunned, and relying on Scotland if they are to win the title.
The tournament finale as France host the Scots was due to take place in February, but was postponed because of a Covid-19 outbreak in the French camp.
The late indiscipline proved Wales' undoing after being outstanding in this department during the tournament with yellow cards shown to the side for the first time in a Six Nations game since 2018.
The defeat is particularly cruel for Wales, who have turned things around in fine fashion under Wayne Pivac after the New Zealander had only won three out of 10 games in his first season in charge.
France: Dulin; Thomas, Vakatawa, Fickou, Penaud; Jalibert, Dupont; Baille, Marchand, Haouas, Taofifenua, Willemse, Cretin, Ollivon (capt), Alldritt.
Replacements: Chat for Marchand (69), Gros for Baille (59), Atonio for Alldrit (60-70), Rebbadj for Taofifenua (22), Jelonch for Cretin (51), Serin, Ntamack for Jalibert (30), Vincent for Thomas (57), Serin for Dupont (74).
Wales: L Williams; Rees-Zammit, North, J Davies, Adams; Biggar, G Davies; W Jones, Owens, Francis, Beard, AW Jones (capt), Navidi, Tipuric, Faletau.
Replacements: Dee for Owens (68), Smith for W Jones (77), Brown for Francis (68), Hill for Beard (57), Botham for Navidi (77), T Williams for G Davies (49), Sheedy for Biggar (68), Halaholo for J Davies (68).