Didier Deschamp made six changes to his lineup in the knowledge that his side had already reached the knockout stages and only needed a point to secure top spot.
With Peru in control from start to finish against Australia, who were Denmark's only rivals for qualification, the Scandanavians were equally content to settle for a draw.
Nabil Fekir came off the bench late on determined to make an impression for France but Kasper Schmeichel's late save sealed the first goalless draw of the 2018 tournament.
Relive how the action unfolded in Moscow with Sports Mole's minute-by-minute updates below.
2.00pmFrance's Group C campaign concludes this afternoon at the Luzhniki Stadium in Moscow - the venue for the World Cup final on July 15th. Can Les Bleus put a marker down to justify their position as tournament favourites, or will Denmark cause an upset to secure their own passage to the last 16?
2.02pmDENMARK: Schmeichel; Dalsgaard, Kjaer, M. Jorgensen,, Stryger; Braithwaite, Delaney, Christensen, Sisto; Eriksen; Cornelius Subs: Krohn-Dehli, Vestergaard, Knudsen, Kvist, N. Jorgensen, Dolberg, Fischer, Lossl, Lerager, Schone, Ronnow
2.06pmDidier Deschamps clearly has one eye on the last 16 already, making six changes to the France lineup which just about overcame Peru last time out. Paul Pogba, Kylian Mbappe and Hugo Lloris are among those players rested, but Antoine Griezmann starts as he aims to rediscover some form.
2.08pmSteve Mandanda gets an opportunity in goal while Presnel Kimpembe and Djibril Sidibe also come into the back five, with Samuel Umtiti and Benjamin Pavard dropping out. Monaco's Sidibie will be hoping to make an impression as Pavard's place is far from secure heading into the knockout phase.
2.10pmThe irreplacable N'Golo Kante retains his place at the base of the France midfield but has new company alongside him, with former Blackburn Rovers and Stoke City man Steven N'Zonzi occupying the Paul Pogba role, and exciting winger Thomas Lemar, now of Atletico Madrid, replacing Blaise Matuidi.
2.12pmDeschamps is still experimenting with his front three and gives Ousmane Dembele another go this afternoon. The Barcelona forward started the victory over Australia but was demoted to the bench against Peru. He replaces Mbappe, who became France's youngest ever World Cup goalscorer last time out.
2.14pmDespite being surrounded by expensive and glamourous names in France's attacking unit, Olivier Giroud continues to be an indispensable cog in this Les Bleus team. The Chelsea striker has 31 goals in 76 international caps and his link up with Griezmann is going to be pivotal to France's success.
2.16pmThe Danes make two changes to the side which were pegged back to draw 1-1 with Australia. Middlesbrough attacker Martin Braithwaite is preferred to Ajax playmaker Lasse Schone, while Andreas Cornelius replaces Yussuf Poulsen, who is suspended having picked up yellow cards in both previous games.
2.18pmMidfielder William Kvist, the most capped player in the squad with 81 international appearances, is again missing having broken two ribs and suffered a punctured lung in the 1-0 win over Peru. Their Jewel in the crow - Christian Eriksen of Tottenham Hotspur draws level with Kvist on 81 caps today.
2.20pmEriksen almost single-handedly dragged Denmark to this World Cup and is continue to carry the weight of a nation on his shoulders in Russia. He has a goal and an assist so far in Group C, and a total of 17 goals in his last 20 appearances for his national side, including a playoff hat-trick against Ireland.
2.22pmSecond to Eriksen in Denmark's recent success has been their defensive record. They name an unchanged back four for the third successive game, and they are yet to concede a goal from open play at the tournament, with Leicester City goalkeeper Kasper Schmeichel displaying wonderful form.
2.24pmAS IT STANDS: Just to clarify the Group C standings, and the permutations of this match on qualification - France are already through and a point will secure them top spot. Denmark will leapfrog France with a win, but a draw or Australia's failure to beat Peru will also see them through.
2.26pmYou can follow live coverage of Australia vs. Peru with my colleague Matt Law here. The Socceroos must win to have any chance of making the last 16. Having suffered two 1-0 defeats, Peru are already eliminated but they have given a decent account of themselves in their first World Cup in 36 years.
2.28pmThe winner of Group C could face any of Argentina, Iceland or Nigeria in the last 16, with the fate of Group D to be decided this evening. Croatia seem likely to top that pool and have been one of the tournament's most impressive teams so far, having dispatched of Lionel Messi and company 3-0.
2.30pmIndeed, France midfielder Corentin Tolisso has admitted that they are looking to "avoid" Croatia in the next round.
He told BBC Sport: "Croatia will come out of Group D, so above all we have to avoid finishing second to avoid meeting them. "Between Nigeria, Iceland and Argentina, they are all good teams. We know the Argentines have very strong individuals, notably Lionel Messi. You never know what's going to happen.
2.32pmFrance's determination to top Group C, and therefore bypass Croatia for now, is slightly contradicted by Deschamps' team selection. Pogba and Matuidi were on yellow cards, so resting them makes sense, but leaving out the likes of Lloris, Umititi and Mbappe appears to be an unnecessary risk.
2.34pmShould Mbappe come off the bench today, he has the opportunity to become the first teenager to score in more than one World Cup match since England's Michael Owen did so in 1998. The 19-year-old has scored five goals and assisted five more in 17 caps since his debut for the national side.
2.36pmWhile Mbappe is the Chosen One of French football, Giroud is the most influential forward at Deschamps disposal, more so than even Griezmann. The 31-year-old is the only Les Bleus player to have been involved in more goals than Mbappe since March 2017, contributing directly to 11 goals.
2.38pmThe former Arsenal target man also has an excellent record against Denmark, scoring each of France's last three goals against the the Scandanavians, most recently a brace in a 2-1 victory in October 2015. That was one of six victories that the French own over the Danes in their last seven meetings.
2.40pmThe only exception to that run was in the group stage of the 2002 World Cup when Denmark dumped the holders out of the tournament with a 2-0 victory, Rommedahl and Jon Dahl Tomasson the scorers. That is Denmark's sole win in their last five World Cup encounters with their fellow European nations.
2.42pmThese two countries also met in the group stage of the 1998 World Cup, when France coming out on top 2-1. That is the only time in tournament history that France have won all three of their group matches, and of course they went on to lift the trophy, with now-manager Deschamps as captain.
2.44pmIf Denmark are awarded a penalty in this match, it will be the first time since Group C in 1998 that all four teams have had a penalty in a single World Cup group. Spookily, that group also contained France and Denmark. The impact that VAR has had on penalties this year means there is an even chance!
2.46pmAs you can tell, France and Denmark have plenty of tournament history between them. They are meeting at a sixth major tournament after Euro 1984, Euro 1992, World Cup 1998, Euro 2000 and World Cup 2002. France went on to win three of those five previous tournaments, and Denmark another.
2.48pmThis star-studded France squad has been widely tipped to go all the way again in Russia, but Denmark boss Age Hareide has not seen much in Les Bleus to make him believe in the hype.
He told BBC Sport:: "France may be considered among the favourites and have six points but they have not been finishing off opponents. They have been pushed to the wire to get the points. They played well in the friendlies, but have not played well so far in the World Cup."
2.50pmAround 10 minutes until kickoff now in Moscow, where the referee is Brazil's Sandro Ricci...
2.52pmThe key battle today has to be Eriksen versus Kante, both among the world's best at what they do. Eriksen can punish any defence if given the time and space in between the lines. Kante is the master at denying a player such time and space, although Eriksen was the match-winner when his Tottenham side faced Kante's Chelsea at Stamford Bridge in the Premier League last March.
2.54pmThe players are out for the national anthems. With Pogba sitting this one out, PSG defender Presnel Kimpembe has taken it upon himself to sport the outrageous hairstyle. Kimpembe's centre-back partner Raphael Varane has taken on the armband in the absence of regular captain Lloris.
2.56pmNot sure what the Danes have been doing in their warm-up with all those tools! They will be hoping to throw a spanner in the works today. Wait, give me a minute. I'm better than that.
2.58pmPREDICTION: I agree somewhat with the Denmark manager that France have flattered to deceive so far, despite carrying a 100% record into this game. If they don't improve on their performances so far, the Danes could collect the point they need to secure qualification. I'll go 1-1.
1 minKICKOFF: The action is underway at the Luzhniki Stadium, with France in their changed white strip...
3 minFrom the teamsheets, it appeared as though Denmark may have switched to a 3-5-2 formation, but interestingly Chelsea defender Andres Christensen has taken up a holding midfield position, a role he's largely untested in. Huddersfield's Mattias Jorgensen partners skipper Simon Kjaer at the back.
5 minThe Danes appeal for a penalty as Braithwaite bursts into the area and is sandwiched to floor by two defenders. The referee waves play on and there is no intervention from VAR on this occasion. The absolute state of that Iran vs. Portugal climax last night. Let's hope for nothing of the sort today.
7 minBraithwaite, who was farmed out on loan to Bordeaux by Middlesbrough last season, has made a really bright start and wins a corner against Kante with another adventurous dribble into the area. Jorgensen gets in front of his marker from the resultant corner but the header is high and wide.
9 minFrance have some silky footballers but they also have one of the game's most feared aerial targets in Giroud, and they have shown in the early stages that they are not afraid to use this asset. Sidibie has looked for the striker with a couple of early crosses but the delivery hasn't been good enough yet.
11 minNothing for either goalkeeper to do in the first 11 minutes. France number two Steve Mandanda is making his maiden appearance at a major tournament, having been in five squads, while Kasper Schmeichel is facing France at a World Cup 20 years after his father Peter did exactly the same thing.
13 minAfter a decent start from Denmark, Les Bleus are enjoying a good spell of possession and the fluid movement of Griezmann and Lemar has the potential to cause the Danes plenty of problems. Do the likes of N'Zonzi and Kante having the vision to spot these runs, as the absent Pogba might?
15 minNow it is France who are calling for a penalty, although the appeal was isolated to Lucas Hernandez who had thrown himself to ground under almost zero contact from the Brentford right-back Henrik Dalsgaard. Giroud stabs the loose ball goalwards but Schmeichel pushes it behind for a corner.
17 minCHANCE! Kimpembe makes a clean contact with a Lemar corner but the header is off target. The PSG defender only has 35 previous minutes of international football under his belt, but has been given the nod over 35-cap Adil Rami as the deputy centre-back this afternoon.
19 minLes Bleus have an overload on the right but the rangey Dembele gets his feet in a tangle and overhits his pass to the overlapping Sidibe, who digs out a cross which is cleared by Christensen.
21 minUPDATE: There has been a goal in the other Group C game, and it is good news for Denmark as Peru have taken the lead against Australia courtesy of a volley from Andre Carrillo.
23 minMidway through the first half and Eriksen has yet to really get involved in the game. The Spurs playmaker has whipped in a couple of decent set pieces but he's seen little of the ball from open play.
25 minSidibe makes a good run down the right but his cross is blocked by the first man. France want handball against Jorgensen but replays show it hit him under the armpit. That is three penalty shouts already though. At this rate the officials in the VAR booth are going to start getting twitchy.
27 minDembele inadvertendly picks out the run of Hernandez with an overhit pass, intended for Griezmann. The Atletico Madrid full-back's cross is cut out by Eriksen on the edge of the area. France will be happy that Denmark's danger-man is spending most of his time defending at the moment.
29 minCHANCE! You can't keep Eriksen out of the action for long though, and the Spurs star has come the closest to opening the scoring. Kante, yes Kante, is robbed of possession and Cornelius runs clear down the left. His cross is weighted perfectly for the run of Eriksen, but a combination of Mandanda and Hernandez fairly thwart the midfielder on the penalty spot. Had Eriksen been a little braver he may have got their first.
31 minWe have a brief stoppage here as Lemar receives treatment for an injury. The new Atletico Madrid winger has burst in off the left at every opportunity, creating room for Hernandez to get by on the overlap, and looks as likely as anyone on the pitch to make something happen in Moscow.
33 minSHOT! Dembele takes a shot on from 25 yards but the right-footed effort was always going away from goal and an unconcerned Schmeichel watches it drift a few yards wide of the post.
35 minKante feed Giroud who gets away from his marker on the half turn. His Chelsea teammate continues his run but it was actually Griezmann that Giroud was looking for with a lofted flick over the defence, which is easily dealt with by Kjaer.
37 minLes Bleus work it nicely down the right, with Griezmann showing his class for the first time today with a delightful pass around the corner, but a heavy touch from Sidibe gives the ball away.
39 minSHOT! Griezmann is starting to warm up here. Eriksen gives the ball away in the France third and Les Bleus counter. Griezmann eventually has the time and space to turn 20 yards from goal and try a curling effort which Schmiechel holds. Invite him to do that at your peril though, Denmark.
41 minAn electric change of pace from Dembele sees him leave Jens Stryger Larsen in the dust and get to the right byline. He picks out a decent cross as well but Giroud had hung back on the edge of the box, rather than attack the ball like any striker with his heading prowess should be doing!
43 minLemar drops a lovely ball over the top for the run of Griezmann, who was later flagged offside but only after setting up Giroud for a decent chance which he blazed over the crossbar.
45 minDembele is yet to find his radar, blazing high into stands with a left-footed shot from 30 yards. The shooting opportunity came after N'Zonzi had brought the ball forward for the first time.
45+2 minYELLOW! Jorgensen takes one for the team by hacking down Griezmann as he entered the Denmark half. The Frenchman had sprung forward from a Denmark corner and after the Huddersfield man gave up the chase, he ensured that his side get to the break with their parity intact.
3.52pmFrance need a draw to top the group, and Denmark need a draw to join them in the last 16, so everyone is happy at half time at the Luzhniki Stadium. Denmark have parked the bus a little but Les Bleus haven't really got out of first gear themselves. They've been disappointing yet again.
3.54pmUPDATE: The pressure has been taken off Denmark by Peru's early goal in Sochi, and the South Americans have taken their 1-0 lead over Australia into the break. As it stands, Australia would finish bottom of Group C and their point would see the Danes finish runners-up to France.
3.56pmNone of the players who have been drafted in by Deschamps have yet to impress sufficiently to influence his team selection for the last 16. Lemar has supplied a few decent crosses but even he could do a lot more. Dembele has shown very little quality and N'Zonzi has been so passive in midfield.
3.58pmSTATS: Check out the half-time numbers with Sports Mole's new in-game stats centre. We are yet to have a 0-0 draw in 36 matches at this tournament. I wouldn't be surprised if that changed in Moscow this afternoon, and the stats after 45 minutes reflect that.
4.00pmI mentioned prior to kickoff that the Griezmann-Giroud link up will be key to France's chances in Russia. Well, Griezmann failed to complete a single pass to Giroud in the first half, so that tells you a lot! (There was one pass of such a kind, but it was soon made redundant by the offside flag.
4.02pmManchester City left-back Benjamin Mendy has been going through an extensive warm-up at half time. That may be an indication that Deschamps is preparing to use the second period to give even more players an opportunity, rather than make a concered push to claim all three points.
46 minKICKOFF: We are back underway at the Luzhniki Stadium, with both sides unchanged. The action has resumed in Sochi too, so I will keep you updated on any goals between Peru and Australia.
48 minBraithwaite seemed to lose interest in running at the France defence after a bright 10 minutes of the first half, but the Boro forward has found a second wind after the break and it takes a heavy tackle from Hernandez to stop him in his tracks. The Frenchman is lucky to escape a yellow card.
50 minSUBSTITUTION: Deschamps wastes no time in getting Mendy on as he replaces Hernandez five minutes after the restart. The left-back made three appearances for City late last season after a long-term knee injury and has also featured in three of France's warm-up games.
52 minUPDATE: Paolo Guerrero has doubled Peru's lead in Sochi, which is a huge goal in the context of this group as it almost certainly eliminates Australia and guarantees Denmark's passage to the last 16. Will hearing of that goal encourage the Danes to take the handbreak off here?
54 minCLOSE! Denmark win a free kick 35 yards from goal. It would take something spectacular from Eriksen to score so instead he intelligently hits a dipping shot to bounce in front of Mandanda, and the France stopper spills the ball and only just recovers before Cornelius can pounce on the rebound.
56 minCornelius needs some attention from the medics after going down off the ball. If he needs to go off, perhaps we will get an opportunity to see highly-rated young Ajax striker Kasper Dolberg, who has been linked with Liverpool and Spurs but is yet to get a run out at this World Cup.
58 minSHOT! Sidibe's poor defensive header plays France into danger and, after Delaney keeps the ball alive, Eriksen drags a right-footed volley just a few yards wide of the post. Cornelius was miles offside, obstructing Mandanda's view, so I'm sure the flag would have gone up had the ball gone in.
60 minSUBSTITUTION: Denmark's first change sees Pione Sisto, who has barely had a touch, replaced by Viktor Fischer. The 24-year-old has had a hard time since leaving Ajax and is back at home with Copenhagen after a disappointing spell with Middlesbrough.
62 minWhile they have barely asked questions of France's defence themselves, Denmark have proven that they have the organisation and solidity to cope with the tournament's most dangerous attacks, however average Les Bleus have been today. This would be a sixth clean sheet in seven for the Danes.
64 minLemar knocks a simple switch of play intended for Mendy straight out of play. This may be the poorest game that I have seen at this World Cup. I expected much more from France in particular.
66 minHe takes his fair share of stick, but Pogba has been a big miss for France today. For all of his qualities, Kante does not transition the ball from midfield to attack quickly and N'Zonzi has shown no intent to do that either today. Pogba is going to be at his best if France are going to go all the way in Russia.
68 minSUBSTITUTION: For the third successive game in Group C, Nabil Fekir comes on as a substitute for France. The reported Liverpool target replaces Griezmann who had another off day.
70 minSHOT! Fekir immediately brings some much-needed energy to proceedings and ruffles the side-netting with a speculative left-footed shot from a difficult angle, 25 yards out. It would be an unbelievable effort to score from there but at least he is showing some intent.
72 minA skilful back-heel from Eriksen finds its way through to Cornelius but Varane is strong up against the 6ft 4in striker and toe pokes the ball away before the Dane can turn in the penalty area.
74 minCHANCE! Mendy whips in a decent cross, a little behind Giroud, but the Chelsea striker would expect to do better with his header, which he can only direct several yards wide of goal.
76 minSUBSTITUTION: We are now going to see Dolberg, and it is indeed Cornelius who makes way. The 20-year-old is coming off a tricky season at Ajax but he is undoubtedly a big talent.
78 minNeither side are making a move to win this game and that has been noticed by the frustrated neutrals, who have begun to boo each unadventurous pass across the Denmark back four.
80 minSUBSTITUTION: The Moscow crowd are on their feet now though to welcome the arrival of Kylian Mbappe, who replaces Dembele here, and surely will in the starting XI for the first knockout round.
82 minSAVE! Fekir appears to be the only player determined to break the deadlock, drifting in from the right flank and bending a shot towards the bottom corner which Schmeichel has to push away.
84 minSidibe knocks in a cross which is just above Giroud and Christensen heads away. The French striker has just not had the service today.
86 minThe Brazilian referee calls for a stoppage as VAR takes a look at a potential penalty for a foul against Giroud, but the big lad backed into Kjaer and threw himself to the ground. No foul, for me, and the officials taking a look at the replay concur.
88 minUPDATE: It is still 2-0 to Peru in Sochi which means that both of these teams are going to get what they wanted from this draw. It never looked like anything but after the first 10 minutes, really.
90 minThere will be THREE minutes of added time, and Mbappe has nearly provided a stunning finish to a very tedious game. The wonderkid dances through three challenges on his way into the area but just overruns the ball and allows Kjaer to make an important intervention.
90+2 minSUBSTITUTION: Delaney took a nasty knock on the ankle while trying to slow down Mbappe. He is limping off to be replaced by Lukas Lerager of Bordeuax. Denmark will hope that is nothing too serious.
4.55pmThirty-eight games in and the 2018 World Cup has its first 0-0 draw. It is a rather predictable one as Denmark and France both secure the point needed to achieve their objectives, with Les Bleus topping Group C and Denmark also through to the last. Boos from the neutrals greet the final whistle.
4.57pmThat's it from me in Moscow! Thanks for joining me today, and be sure to rejoin Sports Mole later this evening when Group C is settled by the Croatia vs. Iceland and Argentina vs. Nigeria matches. Hopefully they will provide a bit more entertainment than this afternoon's offerings! Until then, goodbye...