Gareth McAuley and Niall McGinn were on target as Northern Ireland recorded a famous 2-0 win over Ukraine in their make-or-break Group C clash in Lyon.
Centre-half McAuley opened the scoring just after half-time as he met Oliver Norwood’s free-kick and sent a powerful header into the far corner.
It was his eight international goal and capped off a superb defensive performance for the West Brom man.
Substitute McGinn wrapped up the win with a close-range finish in injury-time after Andriy Pyatov could only Parry a shot from Stuart Dallas.
The game was played in a torrential downpour throughout, with Czech referee Pavel Kralovec momentarily suspending play after 57 minutes because of hailstones.
Northern Ireland maintained their focus after the restart and held out as Ukraine piled on the pressure in the late stages.
They failed to break through thanks to a combination of brave defensive work all across the pitch and a string of fine saves from Michael McGovern. McGinn then hit them with a sucker-punch in the final seconds.
The win puts Northern Ireland in with a great chance of securing a place in the knockout stages, with world champions Germany to come in their final group game in Paris on Tuesday.
Northern Ireland had barely registered an attack in the 2-0 defeat to Poland, so O’Neill went for broke here by opting for a more attacking 4-3-2-1 formation, but in theory they often settled into a 4-5-1.
He also gambled by making made five changes, with Kyle Lafferty the surprise omission. The country’s top scorer in qualifying was dropped for QPR’s Conor Washington.
Experienced defender Aaron Hughes, Corey Evans, Jamie Ward and Stuart Dallas also came into the side in place of Shane Ferguson, Conor McLaughlin, Chris Baird and Paddy McNair.
Ukraine, meanwhile, made just one change from their 2-0 defeat against Germany. Yevhen Seleznyov was chosen as the lone front man ahead of the attacking midfield trio of Viktor Kovalenko, Andriy Yarmolenko and Yevhen Konoplyanka.
Ukraine saw a lot more of the ball in the opening half as Konoplyanka pulled the strings in midfield and captain Vyacheslav Shevchuk raided forward from left-back.
A statistic in the 27th minute showed they had 67% possession, but they were struggling to break down an experienced back four with 245 caps between them.
Hughes, McAuley, Craig Cathcart and Jonny Evans looked comfortable handling what came their way. McGovern only had one shot to save, a long-range effort from centre half Yaroslav Rakitskiy.
Northern Ireland’s attacks were rare, with Washington often a lonely and frustrated figure, notably after his claims for a penalty were dismissed when he was nudged by Yevhen Khacheridi.
However, as the half went on the Northern Ireland’s confidence grew along with the influence of their captain Steven Davis.
The skipper’s role for the first 30 minutes had been limited to chasing and tackling all around him, but now he was setting up attacks and then bursting into the box.
The best chance of the half was to come Northern Ireland’s way. Cathcart outjumped Yarmolenko to meet Ward’s corner but he could not keep his header on target.
Ukraine failed to heed the warning and Northern Ireland picked up where they left off after the break as McAuley grabbed in the opening goal.
The big centre-half beat his marker Khaceridi to reach Norwood’s free-kick and planted his header past Pyatov in the far corner. It was eight goal in 63 internationals and sent the drenched Green Army delirious with delight.
At the other end, Seleznyov went close with two headed chances of his own, before the players were briefly taking out of the hailstones pelting down on the pitch here at the Parc Olympique Lyonnais.
It gave O’Neill another chance to rally his team and they needed it as Ukraine pushed on looking for an equaliser with Kovalenko firing just wide from the edge of the box.
Denis Garmash and Zozulya were thrown into the fray to give Ukraine a sharper edge in attack. The departing Seleznyov look less than pleased as he walked away down the tunnel.
Washington, among others, repaid his manager’s faith in him by running himself into the ground before he was taken off for Josh Magennis.
Ukraine drove forward in search of the goal that never came. McAuley and co repelled attack after attack, and when Ukraine did get through, the calm and assured McGovern was in their way.
It looked like McAuley would join the watching Gerry Armstrong in Northern Ireland football folklore, but McGinn popped up at the death to steal some of the thunder but double the joy.
They will talk about this one for years to come.
Ukraine: Pyatov; Fedetskiy, Khacheridi, Rakitskiy, Shevchuk; Stepanenko, Sydorchuk (Garmash 76); Yarmolenko, Kovalenko (Zinchenko 83), Konoplyanka; Seleznyov (Zozulya 72).
Booked: Sydorchuk
Northern Ireland: McGovern; Hughes, Cathcart, McAuley, J Evans; C Evans (McNair 90), Davis, Norwood; Ward (McGinn 69), Dallas; Washington (Magennnis’ 84).