Anthony Jelonch returned from a lengthy ACL injury absence to captain the team as part of 12 changes to the starting XV which had opened the tournament with an impressive victory over three-time world champions New Zealand in Paris.
Les Bleus went in front from an early Melvyn Jaminet penalty after Uruguay had collapsed the scrum.
The home fans, though, were then left in stunned silence when Jaminet failed to gather a deep cross-field kick out on the touchline. Nicolas Freitas picked up the loose ball to dart down the left and score in the corner.
France responded with a try in the 11th minute when Antoine Hastoy burst through off the scrum, which Jaminet converted and then further extended the lead with another penalty.
Romain Taofifenua was sent to the sin bin after the French lock caught Santiago Arata high with his shoulder going into a tackle – which remained at a yellow card after review by the TMO, Welshman Ben Whitehouse, when on another night it could have been deemed a red.
Uruguay, playing their first match in Pool A, had a try ruled out in the 35th minute when Felipe Etcheverry dived over, with Tomas Inciarte penalised for an obstruction in the build-up as France went into half-time 13-5 ahead.
France thought they had scored a try early in the second half when Gabin Villiere collected a loose ball to run in, but it had been inadvertently knocked on off Anthony Jelonch’s shoulder.
Uruguay then reduced the deficit to 13-12 after Baltazar Amaya powered over in the corner and Etcheverry made the conversion.
France, though, responded again when Peato Mauvaka touched down under the posts after a fortunate ricochet from Etcheverry’s clearance to settle the home fans’ nerves once again.
Any hopes of a comeback from Los Teros were finally ended after Louis Bielle-Biarrey went over in the corner before Sekou Macalou’s breakaway 80-metre try was ruled out by the TMO for kicking through the ruck as Les Bleus failed to claim a four-try bonus point.