France had to settle for second-place in Group D after already-eliminated Poland held Les Bleus to a 1-1 draw, despite Kylian Mbappe returning from injury with a goal.
Back in the starting line-up after recovering from a broken nose, the masked Mbappe thought he had given his side a winning end to the group stages as he converted a second half penalty after Jakub Kiwior clumsily fouled Ousmane Dembele.
But VAR drama would strike as Poland were awarded a contentious penalty after Dayot Upamecano was ruled to have fouled substitute Karol Swiderski in the box. Contact was minimal but Italian official Marco Guida gave the penalty after being asked to visit the monitor.
Poland captain Robert Lewandowski saw his initial penalty saved by Mike Maignan but VAR spotted the France goalkeeper off his line, so the effort was retaken. Lewandowski passed the second test, albeit via the woodwork.
It was a frustrating afternoon for France, with Mbappe denied four times by Poland goalkeeper Lukasz Skorupski. Dembele also saw a one-on-one saved by the stand-in stopper.
France end the group stages with just one win, one goal scored by their 26-player squad, and their second-placed finish means they will face the runners-up in Group E – one of Romania, Belgium, Slovakia or Ukraine.