Kylian Mbappé is the 3rd teenager in World Cup history to score the lone goal in a 1-0 win.
Yet again Les Bleus failed to live up to their status as one of the tournament favourites, but they are now two wins from two and guaranteed to go through to the last 16.
Denmark’s 1-1 draw with Australia earlier on Thursday means that Peru cannot overhaul them in the Group C table, and sets up a showdown between France and the Scandanavians to see who tops the group.
France’s three-man midfield, led by N’Golo Kante, took the sting out of a positive Peru start and Les Bleus soon began to create chances through the link-up of forwards Olivier Giroud and Antoine Griezmann.
The Chelsea striker was the supplier on 11 minutes when Griezmann dragged a left-footed shot wide, and then nodded down a long ball which the Atletico Madrid star volleyed straight at Peru goalkeeper Pedro Gallese.
Griezmann turned provider with an early corner which Raphael Varane sent wide with a glancing header, but the best chance to break the deadlock in the opening half an hour fell to Peru’s all-time top goalscorer Paolo Guerrero, who shot straight at Hugo Lloris from 10 yards after getting away from Samuel Umtiti.
The South Americans were made to pay for their miss four minutes later when Mbappe became France’s youngest ever World Cup scorer by converting a close-range rebound, after Gallese had partially blocked from Giroud.
Didier Deschamps’ side finished the first half strongly and could have extended their lead, but a clear chance fell to the wrong man as Gallese saved from left-back Theo Hernandez after a fluid France move from right to left.
This momentum was not taken into the second period as Peru responded admirably, and although they did not cut open France again, they did unleash several decent efforts from long range in their search for an equaliser.
Pedro Aquino thumped a shot off the crossbar from 30 yards, with Lloris, making his 100th international appearance, beaten. The Tottenham Hotspur goalkeeper was never severely tested though as Andre Carrillo and Luis Advincula struck over the top.