France moved to within sight of a first Six Nations title and Grand Slam since 2010 after beating Wales 13-9 at the Principality Stadium.
Victory over England in Paris next week will see France crowned kings of Europe just 18 months before hosting the World Cup.
But Les Bleus were pushed all the way by last season’s Six Nations champions before ultimately overcoming a sizeable hurdle.
Those that stayed away – the stadium was some 11,000 short of its 74,500 capacity – missed an absorbing Test match.
Flanker Anthony Jelonch scored the game’s only try after just nine minutes, yet that did not detract from a heavyweight contest when both teams did not give an inch.
Full-back Melvyn Jaminet converted Jelonch’s score and kicked two penalties, while Wales captain Dan Biggar booted three penalties in what was France’s severest test of their Six Nations campaign so far.
Wales will close their Six Nations campaign at home to Italy next weekend, while France go for Grand Slam glory, and the home side, especially, can take a huge amount from a display crammed with character and desire.
Wales boss Wayne Pivac made four changes from the side beaten by England last time out, with fit-again Josh Navidi, fellow flanker Seb Davies, prop Gareth Thomas and centre Jonathan Davies called up.
Nick Tompkins missed out due to concussion, and there was no place in the matchday 23 for back-row prospect Taine Basham. France, meanwhile, showed a solitary switch as wing Gabin Villiere replaced Damian Penaud, who was sidelined after testing positive for Covid-19.
France were quickest out of the traps, with skipper Antoine Dupont immediately testing Wales’ defence before Jaminet kicked a third-minute penalty after Navidi drifted offside.
Wales were level two minutes later, though, as a 40-metre Biggar penalty punished French obstruction.
But France were quickly back in charge when Jelonch rounded off a flowing move to touch down after Les Bleus initially looked like they had blown the chance when Villiere ignored an unmarked Dupont alongside him.
Jaminet converted and Wales also lost scrum-half Tomos Williams, who was removed from the field by medical staff after suffering a head injury.
A second Biggar penalty narrowed the gap, then Wales saw prop Gareth Thomas go off for a head injury assessment, with Wyn Jones joining the action.
Given the level of disruption, Wales regrouped strongly, threatening through number eight Taulupe Faletau and wing Alex Cuthbert to give France plenty to think about.
Thomas rejoined the action and Wales continued pressing, being handed a strong attacking platform after Biggar launched a 60-metre touchfinder.
Wales were on top as the interval approached, and Biggar completed his penalty hat-trick, making it 10-9 at half-time and setting up an engrossing second period.
Jaminet opened the second-half scoring when he landed a short-range penalty, but Wales then drove a close-range line-out after a brilliant Biggar kick, only for hooker Ryan Elias to be held up over the line.
France were unquestionably flustered, and Wales continued to hassle them, moving into the final quarter on top in terms of territory.
At times, it was backs to the wall for Les Bleus, yet the defensive structure given to them by their former Wales defence coach Shaun Edwards survived considerable scrutiny.
Pivac and his France counterpart Fabien Galthie rang the changes, but it was the home side who maintained momentum, keeping their opponents under pressure as the clock ticked down.
Wales, despite unremitting efforts, could not find a way through, and French relief was palpable as they kicked the ball out of play to set up next week’s enticing Paris spectacle.