O'Neill's side put in a spirited performance but, without key players such as Bradley, Ballard and McCann, an upset in Italy was a step too far.
Speaking pre-match, O'Neill had said his squad were "ahead of where we probably expected him to be", and the loss, while it will undoubtedly sting now the age profile, and the manner of the performance, bodes well for the future.
Paddy McNair was the only player over the age of 24 in their starting line-up.
That was what made the discipline in their performance so impressive, but a lack of a clinical edge in crucial moments were the difference.
Midway through the first half Galbraith failed to pick out the run of Price, and Northern Ireland's threat from set-pieces was lacking.
It was only when the game opened up did the Italians pose a real threat, and in a moment which got the crowd back into the game, Terry Devlin's misjudged backpass allowed Retegui through on goal but a heavy touch allowed Charles to come to the rescue.
Tonali's opener was a crucial and gave Italy all the momentum, and Price's clearance fell perfectly for the midfielder, who showed his class with a superb volleyed finish.
At the other end, Donnarumma's weak pass almost gifted Donley an opportunity but he could not get the ball out of his feet, and, as Northern Ireland pressed forward Italy looked to finish the tie.
Hume had to head over a cross from under his own crossbar, and Kean's spectacular effort flashed wide of the post before the Fiorentina forward put the game beyond doubt.
Northern Ireland's final-third struggles were summed up when Jamie Reid could not convert from close range in injury time, and as the Italian celebrations at full-time were deafening, the visitors were left to reflect on what could have been.
The players looked dejected as they applauded the travelling support in Bergamo, and eyes will swiftly move to the future for this young group.