Artem Dovbyk scored in added time in extra-time as Ukraine edged out 10-man Sweden at Hampden to set up a Euro 2020 quarter-final with England.
Oleksandr Zinchenko smashed Ukraine in front with a powerful drive but a deflected shot from Emil Forsberg levelled matters before half-time.
Sweden lost Marcus Danielson to a red card in extra time after a VAR check.
And, with penalties looming, Dovbyk - one of 12 substitutes used - headed a dramatic winner from close-range.
Ukraine had crept through from the group phase with a mere three points and a negative goal difference while Sweden topped their section with seven points ahead of Spain.
However, the match in Glasgow was an even contest throughout, with both sides out on their feet by the final whistle.