Mbappe grabbed one of his own with 15 minutes left to play, blasting a swirling shot into the back of the net.
The tournament top-scorer scored another just a minute into added time at the end of the game as he curled the ball into the top left corner.
Robert Lewandowski dispatched a late penalty as the last kick of the game at the second time of asking after missing his first attempt.
Hugo Lloris - 6
Huge save to deny Zielinski on 38 minutes.
Had a slightly nervy moment as he dropped a cross with Poland players surrounding him but he recovered well.
Saved Lewandowski's first penalty but was deemed to be off his line and was sent the wrong way for the second.
Theo Hernandez - 6
Rested for the Tunisia defeat, Hernandez was restored into the starting lineup for this one.
On his weaker foot he fired a shot over the bar from the edge of the box late on.
Dayot Upamecano - 6
Blocked a powerful effort from Zielinski to divert behind for a corner in the first half.
Gave away the late penalty as he was adjudged to have handled Grosicki's cross.
Raphael Varane - 8
Prevented his side from going behind when he cleared off the line from Kaminski's rebound.
The outstanding performer in France's back-line.
Jules Kounde - 7
Ensured a Sunday league-esque stoppage in play because he did not remove his necklaces before kick-off.
Looked comfortable throughout the game, especially when going forwards and conjured up a few dangerous situations.
Adrien Rabiot - 6
A few bright touches from Rabiot, but a big reason why Poland had such a good spell midway through the first half.
He was too passive out of possession during that period which allowed the opposition midfield to get forwards.
Booked somewhat harshly for halting Frankowski as he burst forwards.
Looked tidy on the ball but like Rabiot, found it slightly difficult to deal with the dynamic Poland midfielders.
Eventually substituted for Fofana.
Kylian Mbappe - 9*
An unstoppable performance from Mbappe.
A constant threat down the left-hand side for Les Bleus and provided the assist for Olivier Giroud's record-breaking goal.
Got two goals himself as he fired a thunderous strike into the top of Szczesny's net for the first, along with a curled effort for his brace. Sublime.
Tested Szczesny with a free kick from the right flank.
As usual, a busy performance from the Atletico Madrid man.
Ousmane Dembele - 7
Overhit the square ball across the box for Giroud's first-half chance but assisted Mbappe's goal on the counter-attack.
Olivier Giroud - 8
Scored France's opener with a side-footed finish into the bottom corner to become his country's all-time record goalscorer.
Could have given his side the lead earlier on, as he slid in to try and meet Dembele's cross but did not quite make it.
Youssouf Fofana - 6
The Monaco midfielder was tidy after replacing Tchouameni.
Kingsley Coman - 6
Quiet after coming on for Dembele.
Marcus Thuram - 6
Played the ball into Mbappe for his second goal.
Axel Disasi - 5
Brought on too late to make a difference.
Wojciech Sczesny - 7
Was alert to deny Mbappe's powerful near-post effort midway through the first period.
Could not do anything about any of the goals, with the last two throwing him off due to the dip on the shot.
Matty Cash - 6
Despite his opposite number getting an assist, the Aston Villa right-back dealt with the pace of Mbappe well.
Began to struggle as the game went on and was booked as he hauled down Thuram a few minutes from full-time.
Kamil Glik - 6
Made an important interception as Griezmann crossed early in the second half as several France attackers waited for the ball.
Headed over from a corner midway through the second period.
Jakub Kiwior - 7
Showed a different side to his game.
It helped Poland to be slightly more progressive when moving out of defence. Subbed off for Bednarek.
Bartosz Bereszynski - 6
Wrongly yellow-carded for his tackle on Dembele, as replays showed he won the ball.
Battling performance as ever from the left-back.
Blocked a stinging shot from Mbappe which stopped France from doubling their lead.
Controlled the midfield at times for Poland.
Substituted as his side chased the game.
Piotr Zielinski - 5
Forced Lloris into a dynamic save just before half-time in Poland's first real chance of the game.
Had several opportunities to score but was disappointing when inside the opposition's 18-yard box.
Sebastian Szymanski - 6
Buzzed around well, but the first to be sacrificed as Czeslaw Michniewicz tried to make changes in order to get back into the game.
Jakub Kaminski - 6
Caused Hernandez a few problems, but substituted with 20 minutes to go.
A good threat throughout Poland's best spell.
Przemyslaw Frankowski - 7
Very busy performance from the Lens winger.
Looked very adept when crossing the ball into the box and a decent threat.
Fired a long-range effort just wide of the mark after 20 minutes.
Was supported much better in comparison to their group games but no chances really fell his way.
Was lucky to have the chance to retake his penalty after a really poor first effort.
Succeeded the second time around though.
Arkadiusz Milik - 6
Hit the post with a bicycle kick which turned out to be offside.
Krystian Bielik - 5
Nicola Zalewski - 6
Crossed well into Zielinski just after coming on.
Jan Bednarek - 5
First appearance of the tournament for the defender.
Kamil Grosicki - 6
His cross was handled by Upamecano to win the last-minute penalty for his country.
Put in a few good deliveries.