Manchester City defender Olek Zinchenko had a starring role as Ukraine set up a quarter-final with England with a goal in the last seconds of extra time.
Artem Dovbyk nodded home in the 120th minute as a penalty shoot out loomed, with Zinchenko providing the cross, and also his nation’s opening goal.
It finally broke ten-man Sweden, and ensured ex-Chelsea striker and Ukraine boss Andriy Shevchenko will lead his team against Gareth Southgate on Saturday.
Zinchenko was excellent, providing Ukraine’s energy for two hours.
He volleyed an unstoppable shot across goal, after West Ham’s Andriy Yarmolenko bent a clever cross with the outside of his foot to the back post.
Emil Forsberg grabbed an equaliser against the run of play before half time and delivered an outstanding performance.
The RB Leipzig striker shot from 25 yards and beat Georgiy Bushchan with the help of a deflection off Illia Zabarnyi.
After the break Forsberg hit the woodwork twice. First the post, and then the bar, with curling shots after cutting inside to his right foot.
But as the game entered extra time Sweden suffered a setback when Marcus Danielson was sent off in the 98th minute.
Ref Daniel Orsato reviewed his thigh-high, game-ending contact on Artem Besedin and showed red.
Danielson didn’t go in with malicious intent and Besedin was caught by his follow through. The ref made his judgement on a freeze frame which made it look a horror tackle.
Zinchenko says the only thing that got him over the pain of Champions’ League final defeat in May was the camaraderie he immediately found in his national side.
“I had perhaps the worst few days of my footballing life after the Champions League final,” he admitted.
Now he is smiling and the biggest danger facing England.
Data analysts speculated England will have a 70 per cent chance of overcoming Ukraine, but Southgate scoffed at suggestions England are on the best side of the draw.
Ukraine have only beaten England once in their seven meetings.