A masked Kylian Mbappe scored his first-ever Euros goal but France were held to a draw by an already-eliminated Poland to finish second in Group D.
France needed all three points in order to seal top spot, but Robert Lewandowski's 79th-minute penalty cancelled out Mbappe’s spot-kick 11 minutes into the second half.
Ralf Rangnick's Austria produced a fantastic display to beat the Netherlands 3-2 and top the group, while the Dutch took third place.
The runner-up in Group E awaits Didier Deschamps' side, who now occupy the same half of the draw as Portugal, Spain and Germany.
Having returned to the starting line-up following a broken nose and donning a protective mask, Mbappe ended his wait for a first goal at a European Championships with the opener.
Ousmane Dembele was brought down in the area by Poland and Arsenal defender Jakub Kiwior and Mbappe made no mistake from the spot.
But France took their foot off the gas and a clumsy challenge from Dayot Upamecano gifted Lewandowski a golden opportunity to respond with a spot-kick of his own.
Mike Maignan thought he was the French hero after saving Lewandowski's effort but the goalkeeper had encroached off his line and the penalty had to be retaken.
The Poland captain slotted into the corner to score for a fourth European Championships, joining Cristiano Ronaldo and Luka Modric in achieving the feat.
- Attribution
- Attribution
France struggling to hit top form
The thousands of blue shirts inside a scorching Signal Iduna Park in Dortmund finally got to witness a Frenchman scoring for their side when Mbappe netted in the 56th minute.
The French captain ripped off his protective mask to celebrate his 48th strike for his country and it looked as though Deschamps' side would be coasting towards top spot in Group D.
However, Poland - who will be jetting home tomorrow after finishing bottom of the group - had other ideas as they surprised the 2022 World Cup finalists.
Upamecano, who has found himself on the bench for much of Bayern Munich's season, made the defensive mistake to concede the penalty leveller with a clumsy tackle that caught Karol Swiderski.
After a stuttering run-up, Lewandowski scuffed his first attempt and Maignan saved well, but had stepped off his line too early and could not stop the second finish into the same corner.
France then struggled to create any good opportunities to claim the victory, despite dominating the match with 58% possession and 19 shots on goal.
Lukasz Skorupski did well in the Polish goal, but Deschamps' men will enter the knockout stage having netted only twice - one of them an own goal - in their three group games.
They are reliant on Mbappe - now just one goal behind Michel Platini's French record of 14 in major tournaments - but he needs more attacking help if his side are to progress further.
The talented Dembele threatened occasionally on the right of the front three but has yet to score for his nation in a major tournament.
Deschamps will know his side must find their form quickly if they are to go all the way in Germany.
Player of the match
After the opportunity to rate players has closed, the score displayed represents the average from all the submissions by BBC Sport users.