- Jakub Błaszczykowski's fine 54th-minute effort settles the game in Poland's favour
- Poland finish second in Group C on goal difference behind world champions Germany
- They emulate Italy (1980) and Germany (1996, 2016) in not conceding in a EURO group stage
- Poland will face Switzerland in the last 16 on Saturday, kick-off 15:00CET in Saint-Etienne
- All the build-up, match action and reaction as it happened on UEFA.com
Half-time substitute Jakub Błaszczykowski struck the decisive blow as Poland confirmed their participation in the knockout stage and ensured Ukraine will travel home from UEFA EURO 2016 without a point or a goal to their name.
Ukraine were building on their first-half superiority when the midfielder, initially rested for the Red and Whites' last Group C encounter, received a reverse pass from Arkadiusz Milik, cut on to his left foot and bent a shot past Andriy Pyatov.
Pyatov had stood tall to thwart Milik inside three minutes, less than 60 seconds before the unmarked Robert Lewandowski lifted an inviting cross from his strike partner over the bar.
Mykhailo Fomenko's team, anything but submissive in their EURO swansong, then took control. They bossed possession, threatened down each flank and spurned a golden opportunity of their own when Andriy Yarmolenko, sent clear by Ruslan Rotan, scooped wide of the far post.
Olexandr Zinchenko, the smallest player on the pitch, headed over as Ukraine picked up where they left off after the restart. Błaszczykowski's introduction tilted the contest Poland's way.
The Borussia Dortmund man conjured his 17th goal for Poland, who preserved their record of never having lost when he has scored. More importantly, it takes the nation through to the knockout stages for the first time.
Man of the match: Ruslan Rotan (Ukraine)
Battle of the 19-year-olds
Born eight days apart, in December 1996, Bartosz Kapustka and Zinchenko had a grand stage on which to display their talents. Ukraine's youngest scorer, Zinchenko was a bundle of energy and inventiveness in a free role behind Roman Zozulya, one through ball to the lone forward an indicator of his confidence on his maiden international start.
With Poland through, the quieter Kapustka, who hit the side netting shortly after the goal, potentially has another outing to enhance his burgeoning reputation
Lewandowski, the 13-goal top scorer in qualifying, is now six internationals without finding the net. He may say openly that this does not affect him, but his early miss must have stung. Though the Bayern München man is contributing in other ways, such as creating space for Milik, you sense that the goals must start to flow for the tall No9 sooner rather than later if Poland are to live up to their dark horse tag.
Shut out – again
Ukraine have joined Turkey (1996) and Denmark (2000) in failing to score in a EURO group stage. In fact, the 2012 co-hosts have drawn a blank in their last five continental finals matches. It was not supposed to be like this, and they certainly had their moments tonight. Their pre-tournament form was encouraging, Ukraine arriving in France on the back of four successive friendly wins.
Reporters' views from Stade Vélodrome
Bogdan Buga, Ukraine (@UEFAcomBogdanB)
More disappointment for Ukraine, who yet again conceded from a set piece for the third consecutive match and missed several great opportunities. Now it is time for the team to take stock and learn their lessons. After all, there is no such thing as negative experience.
Piotr Koźmiński, Poland (@UEFAComPiotrK)
A less impressive performance by Poland compared to their previous matches, but a good result nonetheless. Piotr Zieliński did not perform as hoped in an important game and was withdrawn for Blaszczykowski, whose know-how was exactly what was needed. He is the first player to score for Poland in two EUROs.