Bosnian midfielder Krunic headed the first and Brahim Diaz scored a neat second for the Rossoneri, before Jens Hauge added a late third, as they produced an efficient performance in Glasgow against the Scottish champion.
With Celtic reeling from a derby defeat to Rangers and weakened by a string of injuries, this match always looked unlikely to provide the succour for which they were hoping.
Milan were so in charge that Zlatan Ibrahimovic could effectively stroll through 65 minutes before being replaced, but they were hanging on after Mohamed Elyounoussi's header gave the hosts a surprise foothold, until Hauge made sure.
Celtic wanted an early penalty when Albian Ajeti's shot hit Alessio Romagnoli, but it did not look to strike the Milan captain's hand, and Olivier Ntcham's follow-up strike was tame.
It was downhill from there for the hosts, with Milan snatching a 14th-minute lead when Samu Castillejo sent in a teasing cross from the right and former Empoli man Krunic headed beyond the dive of goalkeeper Vasilios Barkas, finding the left corner.
Jeremie Frimpong was at times lively for Celtic on the right, but Milan is eager to make its presence felt in this competition, despite having only edged into the group stage after beating Rio Ave 9-8 on penalties in its play-off.
Diaz got the second goal for Stefano Pioli's men in the 42nd minute, taking a pass from Theo Hernandez and showing nimble footwork before burying a low shot into the left corner.
Uruguayan winger Diego Laxalt sent a shot a yard over the Milan crossbar early in the second half as Celtic searched for a way back into the game.
Ryan Christie's corner was nodded in by fellow substitute Elyounoussi in the 76th minute to give the host hope, but Milan was in no mood to be denied and Hauge finished well from Alexis Saelemaekers' pass in stoppage time.