France topped Group A despite being held to a 0-0 draw by Switzerland – who also qualified for the last 16 – in Lille.
The hosts were left frustrated after Dimitri Payet and Paul Pogba hit the woodwork and goalkeeper Yann Sommer denied Antoine Griezmann.
Well-drilled Switzerland struggled to create and never seriously tested Hugo Lloris in the France goal but got the point they needed to bag a spot in the second round.
Payet, who had scored in both of France’s previous games, and N’Golo Kante were benched by boss Didier Deschamps with the team having already qualified from the group.
Without the key pair the hosts began nervously and Pogba almost scored an own goal when he sliced Xherdan Shaqiri’s 10th-minute corner in the area.
But, two minutes later, he came close to the opener at the right end when Sommer spilled his effort onto the top of the bar.
Juventus midfielder Pogba was at the heart of France’s early attacking efforts and Sommer denied him again when he superbly turned away his drive.
Pogba continued his one-man assault in the 17th minute and his 25-yard shot clipped the bar but, despite dominating much of the half, France failed to net.
Pogba’s four shots in the opening 17 minutes were as many as he had had in France’s opening two games as he rampaged forward.
Andre-Pierre Gignac forced Sommer into a low save seven minutes after the break and then the ball had to be replaced after it burst following Valon Behrami’s tackle on Griezmann.
Atletico Madrid forward Griezmann’s shot was parried over soon after following a neat one-two with Gignac with Switzerland struggling to offer any attacking threat of their own.
Stoke midfielder Shaqiri tried and failed to find a way through France but resilient Switzerland continued to battle away and deserved a point, although they survived a scare with 15 minutes remaining.
In-form Payet, a former Lille player, had been brought on with 27 minutes left as France chased the opener and the West Ham man almost grabbed it.
Moussa Sissoko’s barnstorming run down the right ended with the Newcastle midfielder crossing for Payet – only for his stunning first-time volley to crash off the underside of the bar.
The 29-year-old then sliced wide with time running out and his late free-kick hit team-mate Blaise Matuidi in the wall.
And Switzerland were denied a penalty in injury time when Blerim Dzemaili was tugged in the area by Bacary Sagna as the sides settled for a point.