Kylian Mbappe made history as France booked their place in the World Cup's knockout rounds with an unconvincing 1-0 Group C defeat of Peru.
France were fortunate in their 2-1 opening win over Australia and they had slices of luck again at the Ekaterinburg Arena on Thursday.
Mbappe's goal, which came from close-range after Olivier Giroud's shot took a wicked deflection to beat goalkeeper Pedro Gallese, saw the 19-year-old become the youngest player to score for France at a major international tournament.
As they did in losing narrowly to Denmark, Peru had plenty of chances, returning captain Paolo Guerrero firing at Hugo Lloris and Pedro Aquino clipping the post with a super strike from range.
However, Peru were unable to find a way through and Ricardo Gareca's side - who have yet to find the net in Russia - are certain to be knocked out.
Denmark look set to join France in the last 16 after their 1-1 draw with Australia, but they need a point against Les Bleus in their final outing to be certain of progressing.
19 - Kylian Mbappe (19 years & 6 months) is the youngest France player ever to score in a major tournament (World Cup + EURO). Speechless.— OptaJean (@OptaJean) June 21, 2018
Lloris was making his 100th France appearance and the goalkeeper was almost tested by an ambitious early strike from Yoshimar Yotun, but the shot from the halfway line drifted wide.
Antoine Griezmann - who signed a new Atletico Madrid contract on Monday - had France's first opportunity in the 11th minute but Euro 2016's leading scorer fired wide, while Paul Pogba also failed to work Peru goalkeeper Gallese.
Chances were flowing for France, Raphael Varane missing with a header before Gallese saved with his legs to deny Griezmann after Giroud found his strike partner with a headed pass.
But France's early intensity started to fade and Peru should have taken advantage, yet Guerrero shot straight at Lloris on the turn after Christian Cueva found him in the box.
That miss proved key as Mbappe's historic World Cup moment gave France a 34th-minute lead.
Pogba slid Giroud into the area and when the striker's shot looped over Gallese via a deflection off Christian Ramos, Mbappe could not miss from inside the six-yard box.
Gallese prevented Lucas Hernandez from doubling the France lead as Peru ended the first half on the ropes.
Gareca sent on Anderson Santamaria and Jefferson Farfan at the break, while Samuel Umtiti shook off a dead leg, before Aquino clipped the outside of the post with a swerving drive from 25 yards.
Andre Carrillo fired over the crossbar and Farfan hit the side-netting as Peru grew increasingly desperate to keep their World Cup hopes alive.
Substitute Ousmane Dembele - dropped for Giroud - could have wrapped up the points in the 82nd minute but rifled wide, as France appeared to settle for a one-goal victory.
With Peru's record scorer Guerrero wasting a late free-kick, Didier Deschamps' squad safely held on to secure their place in the knockout stages.
Key Opta stats:
- France are unbeaten in their last eight World Cup fixtures against CONMEBOL opposition (W4 D4).
- Peru are winless in their last eight World Cup matches (D2 L6), scoring just two goals in this run.
- Les Bleus have qualified for the knockout stages of the World Cup for the sixth time in their last eight appearances – only failing to do so in 2002 and 2010.
- Kylian Mbappe has been directly involved in eight goals in his last nine games for France (4 goals, 4 assists).
- France captain Hugo Lloris is the seventh player to reach 100 caps with France.
|Warriors´ Curry will not play during three-game road trip|
|Ramos refuses to retaliate after Lovren jibe|
|Qatar pull off shock win over Switzerland|
|Tuilagi could make England return against Australia|
|Rooney has earned England reward - Sarachan|
|Croatia thrashing means nothing now – Luis Enrique|
|Chelsea and Everton among Arnautovic suitors, claims agent|
|TJ Watt hopes to win NFL sacks race with brother JJ|
|Modric defends Ramos after Lovren comments|
|Southgate hails ´outstanding´ Delph as he talks up England strength in depth|
|No war with Manchester United over Fellaini, insists Martinez|
|Rooney to wear number 10 shirt against USA and receive armband from Delph|
|I don´t feel pressure of Liverpool expectations, claims Klopp|
|Steelers´ Roethlisberger texted Bell but ´didn’t hear back´|
|Reus and Kroos to sit out Germany´s clash with Russia|
|Van Dijk happy to recommend De Ligt if Liverpool ask|
|Sauber announce launch of junior programme|
|No ´breathtaking tennis´ in Djokovic´s win against Zverev|
|Curran: England spinners will be key in Kandy|
|Djokovic charges past Zverev to move closer to ATP Finals progression|
|Messi is a football alien - Malcom|
|Sky´s the limit for Sancho, says Dortmund team-mate Pulisic|
|Radwanska retires from tennis at 29|
|Maybe one day - Pulisic open to Premier League move|
|Suso ´proud´ of Real Madrid speculation but happy at AC Milan|
|Betis president convinced Lo Celso will stay|
|Injured Holder out of Bangladesh tour|
|Germany face relegation, final spots up for grabs - Nations League state of play|
|James Rodriguez out for several weeks with knee injury|
|Curran´s brilliant fifty rescues England´s innings|
|Lenglet: No problem with Dembele at Barca|
|Townsend rings the changes for Springboks clash|
|Claudio Ranieri´s managerial career in Opta numbers|
|Mahmudullah´s first century in eight years boosts Bangladesh|
|Fellaini gets the chop ahead of 31st birthday|
|Maradona: Solari will not last at Real Madrid|
|Molinari: Race to Dubai success would not surpass Ryder Cup glory with Fleetwood|
|Dortmund star Sancho was a Bayern target, confirms Salihamidzic|
|Gerrard enjoying ´buzz´ of management|
|Hamilton questions approach to Formula One expansion|
|Ranieri honoured to lead ´exceptional´ Fulham squad|
|Solari saw Isco out of shape - Ceballos|
|Ranieri replaces Jokanovic at Fulham|
|Durant keeps details of Green spat ´in-house´ but envisages resolution|
|Rooney: Kane and Sterling are England superstars|
|Messi will make Argentina return, says Maradona|
|Warriors drop Hawks as Green serves suspension|
|In-form Healy sends Australia into semis|
|Former NBA star McGrady says Carmelo Anthony should retire|
|Celtics´ Smart: We have to look at ourselves in the mirror|
|Federer plays down preferential treatment talk|
|Mourinho is better than Guardiola – Maradona|
|Mbappe plays down Pele comparisons|
|Don´t worry bro – Mendy responds to Trump|
|Melvin, Snitker win manager of the year awards|
|Warriors´ Green suspended for Hawks clash|
|Asensio: It´s not for me to lead Madrid|
|Rooney ready to enjoy England farewell after pressure of ´Golden Generation´|
|Ludwigsburg stun high-flying Murcia in BCL|
|Rams v Chiefs moved to LA due to Mexico City field conditions|
|Skriniar discussing new Inter contract, confirms agent|
|Former Barcelona boss Martino named MLS Coach of the Year|
|Bell fails to report to Steelers, will sit out rest of season|
|Federer back on track after dismal Thiem display|
|Udinese appoint Nicola after sacking Velazquez|
|Monaco deny they broke rules regarding youth recruitment|
|Del Bosque, Zidane, Lopetegui - The former Castilla coaches Solari follows into Real Madrid hot seat|
|Ozil rejected ´crazy offers´ from Asia, reveals agent|
|Real Madrid appoint Solari on permanent basis|
|LeVert avoids need for surgery, should return this season|