The world champions took the lead after 20 minutes when a sublime Paul Pogba pass found Lucas Hernandez, before the Bayern Munich man fired the ball across for German defender Mats Hummels to turn into his own net.
Serge Gnabry went closest for Germany when his shot was hit down into the ground and bounced up and over Hugo Lloris, only to nestle the wrong side of the net’s roof.
Kylian Mbappe thought he had wrapped things up for France midway through the second half when he superbly curled home, but the assistant referee then correctly flagged him for being offside in the build-up.
Here are five things we learned from this Group F opener...
Pogba thrives on international duty
Pogba has had his critics during his second spell at Manchester United since returning from Juventus in 2016. But he was key for France in their World Cup triumph three years ago and showed signs of doing the same against Germany.
When he is on song, the 28-year-old’s ability to dictate the pace of the game is never been in doubt. And he set the tone tonight with some superb play early on which culminated in a wonderful assist for the goal - a 30 yard rake across the pitch perfectly showing off his supreme weight of pass.
Alongside Kante - who does the vital dirty work for the more expressive Pogba - there is not a better midfield in the competition. And with Adrien Rabiot in there as another runner, it will take a formidable outfit to outplay them in the centre of the park.
Hummels shows his age with lethargic display
Mats Hummels and Thomas Muller were both recalled to the Germany side by boss Joachim Low earlier this year after two years out of the international set-up.
But both Muller, 31, and in particular Hummels, 32, failed to make a positive impact on this game, with the latter often being embarrassed by the dynamic French attack.
His first calamitous moment came when he humorously turned into his own net to give France the lead. Hummels’ inability to adjust his body position to clear the ball proved the frailties many already felt existed within the German backline.
And he looked a yard behind the play for much of the match as France were able to exploit the gaps between the three centre backs time and time again. Hummels also should have had a penalty given against him when Mbappe totally destroyed him on the counter and was subsequently brought down.
Mbappe threat deters opposition attack
The obvious point to make about Kylian Mbappe is his devastating pace on the break tearing apart the other side’s helpless defenders.
But an underrated benefit to the 22-year-old being in the France side is how it impacts the opposition’s desire to commit players forward, particularly earlier on in games. Germany started the game on the front foot, playing a high line and pushing Joshua Kimmich and Robin Gosens up onto Lucas Hernandez and Benjamin Pavard.
And they played that way until Mbappe gave them a taste of his blistering speed after a quarter of an hour. From then on, Kimmich and Gosens dropped deeper and the German front three were largely feeding off scraps until the latter stages of the match,
That tactical shift in the game comes from the Mbappe deterrent that France possess. A forward who not only scares defenders, but also opposition attackers.
New breed of attacking talent the way forward for Germany
As we’ve already covered, Low decided earlier this year to recall 11-year German international veteran Muller to the squad. To many the move struck of desperation on the part of the outgoing manager.
But after this performance from the Bayern Munich No. 25, the decision to sling him straight back into the starting line-up can be labelled both reckless and needless.
Muller looked completely lost in between the bright Kai Havertz and talented Serge Gnabry. And with Timo Werner and Leroy Sane on the bench, you feel Low’s call to bring Muller back was a misguided one.
The plethora of attacking options Germany have rivals the likes of France, England and Portugal. But while Muller continues to occupy one of the main forward roles, those players are always going to be a supplementary option for the team.
Rudiger’s bite indicative of a tentative German side
Anthony Rudiger’s composed decision making was a major part of his upturn in form towards the end of Chelsea’s season. He returned to the Blues’ team when Thomas Tuchel arrived at Stamford Bridge in January and was a key part of their Champions League victory.
Which is why it beggars belief as to what he was thinking when he appeared to bite Paul Pogba on the back during the first half of this game. The decision could have resulted in a red card. And if that had happened it would have almost certainly led to France racking up a few more goals.
Low seriously has to question a player’s mentality when he is doing things like that in high-stakes games. But with the lack of options Germany have at centre-half, you imagine he will keep his place.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies