Didier Deschamps' team will likely avoid Croatia in the knockouts, although they could yet face Lionel Messi's Argentina, who play Nigeria in their final group game in St. Petersburg tonight.
In the end, Denmark would have finished as runners-up regardless of the result in Moscow's Luzhniki Stadium, after Australia lost 2-0 to Peru in the other Group C finale.
Deschamps made seven changes from the side that beat Peru, with booked pair Paul Pogba and Blaise Matuidi, as well as captain Hugo Lloris, among the players rested.
Les Blues edged a lethargic first half and Ousmane Dembele was the closest to a goal with a long-range effort.
Denmark made just two changes from the draw with Australia but danger-man Christian Eriksen was well-shackled by Steven N'Zonzi and N'Golo Kante, with his only opening in the France penalty area well-smothered by goalkeeper Steve Mandanda.
After the break, Mandanda spilt Eriksen's free-kick as Denmark tried to inject some urgency into the match but it was the introduction of Liverpool target Nabil Fekir for Antoine Griezmann after 70 minutes that sparked the encounter into a pale imitation of life.
The Lyon winger curled into the side-netting within a minute of his introduction and later forced Kasper Schmeichel into a save.
Wingers Viktor Fischer and Kylian Mbappe also came on but made no difference as the teams continued to go through the motions and the final 20 minutes were punctuated by boos from the near-80,000 crowd.