France missed out on top spot in Group D after they were held to a 1-1 draw by Poland despite Kylian Mbappe scoring his first goal at a European Championship.
Mbappe returned to the starting lineup after sitting out the goalless draw against the Netherlands due to the broken nose that he sustained against Austria.
Real Madrid's star summer signing had a couple of chances to break the deadlock in the first period, but he was denied by Lukasz Skorupski on both occasions.
Mbappe finally beat the Poland goalkeeper in the 56th minute, keeping his composure from the penalty spot to fire in his first-ever goal at the European Championship.
After France's main man broke the deadlock, it was then the turn for Poland's talisman to dispatch a penalty of his own.
Robert Lewandowski saw his initial penalty saved, but replays showed Mike Maignan had left his line prematurely, presenting the Barcelona man with the chance to slot home from the retake.
France were unable to offer a response and ultimately had to settle for a share of the spoils, ensuring that they finish in second place in Group D with five points to their name.
Meanwhile, Austria are the surprise group winners following their stunning 3-2 victory over the Netherlands, while Poland finish bottom despite picking up a commendable point against Les Bleus.
Goalless first half in Dortmund
France began the day in second position and level on points with Netherlands, while they had a slender one-point advantage over third-placed side Austria.
Les Bleus offered their first meaningful threat in the 11th minute when AC Milan's Theo Hernandez drew a smart stop from Skorupski.
The Bologna shot-stopper was then required to make another strong save to deny Ousmane Dembele, who had slipped in by former Chelsea midfielder N'Golo Kante.
As the contest moved past the half-hour mark, Lewandowski was presented with the chance to break the deadlock, but he saw his header deflect off Arsenal defender William Saliba.
With the game still goalless, a masked Mbappe attempted to take responsibility in the closing stages of the first period, drawing two near-post saves from Skorupski in the space of three minutes.
Lewandowski strikes to cancel out Mbappe
After being denied in the closing stages of the first period, Mbappe threatened again in the opening stages of the second half, bending a right-footed shot towards the far post, only to see Skorupski push it away from danger.
Mbappe finally found a way past the Bologna shot-stopper when he was presented with the chance to go to the penalty spot after Dembele had been tripped by Jakub Kiwior.
The France captain stepped up to send Skorupski in one direction and the ball on the opposite side of the Poland goal.
With the quality in their squad, France would have been confident of protecting their lead to secure top spot in Group B.
However, Dayot Upamecano gifted Poland the chance to equalise after a VAR review ruled that he had kicked the back of Karol Swiderski's right foot.
Lewandowski saw his initial penalty saved by Maignan, who waited for the stutter before diving low to the right to gather the ball.
But the Barcelona forward was given a reprieve after replays showed that Maignan had strayed off his line, and he ultimately made no mistake from the second spot kick, sliding the ball in off the inside of the post.
France failed to provide any sort of meaningful response to the equaliser, ensuring that Poland picked up a hard-earned point in their final outing of Euro 2024.
Man of the Match - Lukasz Skorupski
Skorupski will hold his head high after producing an impressive display against a France side stacked with attacking talent.
He made a number of crucial stops in the first period to keep his side in the contest, before finishing the game with a total of seven saves.
What next for France?
After finishing in second place, Didier Deschamps's side will face the runners-up in Group E in Dusseldorf on Monday.
As a result, France know that they will be up against either Romania, Belgium, Slovakia or Ukraine, with all four teams sitting on three points following the first two rounds of matches. body check tags ::