Scot Gemmill’s side needed to win their last two games to keep alive a chance of qualifying out of Group 4 for the play-offs as one of the best placed runners up.
And they got off to the perfect start as Lewis Morgan found the net within 60 seconds of kick-off.
But they can now forget about next year’s finals after the hosts responded with a double from Oleksandr Zubkov and an injury-time effort from Viktor Kovalenko to kill off their ambitions.
The young Scots arrived at the Obolon Arena on the back of beating the Dutch for the second time this campaign.
Their 2-1 win in Nijmegen was a hugely impressive result and the confidence it produced was clear from the first whistle as Morgan fired Scotland ahead inside a minute.
Liam Smith found Eamonn Brophy darting in behind the home defence and his cut-back was turned home at the front-post by the Celtic attacker.
That lead should have been extended but Gemmill’s boys missed three copy-cat chances as Porteous seemed to be left free every time he went up for a corner - but could not convert.
And those wasted openings came back to haunt the Scots as they were pegged back on 31 minutes.
Volodymyr Shepeliev he teed it up for Zubkov, with his strike taking a nick off David Bates as it deflected past the helpless Robbie McCrorie.
The Shakhtar Donetsk youngster caught his next effort clean 11 minutes into the second period, however, as he left McCrorie looking foolish.
His long-range strike swerved one way then the other before squirming through the keeper’s hands to hand Ukraine the lead.
And there was no way back when Kovalenko swept home the third in stoppage-time, meaning Gemmill’s side now welcome England to Tynecastle on Tuesday with only pride to play for.
Scotland Under-21s: Robby McCrorie, David Bates, Liam Smith, Ross McCrorie, Greg Taylor, Ryan Porteous, Lewis Morgan, Chris Cadden, Stevie Mallan, Adam Campbell (Billy Gilmour 90), Eamonn Brophy (Glenn Middleton 69). Subs not used: Ross Doohan, Ryan Williamson, Ethan Watt, Oli Shaw, Thomas McIntyre.