A masked Kylian Mbappe scored his first 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 to 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.