Match ends, Milan 4, Celtic 2.
Celtic lost a two-goal lead at San Siro as AC Milan fought back to inflict the Scottish champions' fourth Europa League defeat in five games.
Impressive finishes from Tom Rogic and Odsonne Edouard had struggling Celtic in control after 14 minutes following a vibrant start by Neil Lennon's under-pressure side.
But by the 26th minute, Milan were level through Hakan Calhangolu's free-kick and Samu Castillejo, before Jens Petter Hauge and Brahim Diaz put them into the last 32 with a game to spare.
Top seeds Celtic, who have just one point from five Group H matches, already knew they could not progress prior to kick-off, and have now won just twice in their last 11 games in all competitions.
Thirteen months ago, Lennon's side completed a double over a team fighting for the Serie A title - Lazio - to secure a last-32 spot with two games to spare.
The fact a narrow loss against a similar opponent is now considered an improvement shows the scale of their drop off since.
That night in Rome against Lazio could be considered the high point of Lennon's second spell in charge, and what he was looking for at San Siro was for his players to show some sign that those heights are not only a thing of the past.
For 20 minutes, they did just that. Rogic's opener was a gift as Rade Krunic's heavy touch allowed the Australian to steal the ball on the edge of the box, but his control and low left-foot finish beyond Gianluigi Donnarumma was superb.
Edouard's delicate lift over the Italian goalkeeper was just as impressive as he latched on to Ryan Christie's pinpoint pass, and it was fully deserved as Callum McGregor and Rogic both went close just prior.
But the high-tempo start was destroyed by Celtic's familiar Achilles heel - their defending.
First, Christie needlessly hacked down Krunic on the edge of the box, which allowed Calhanoglu to curl into the net from the resulting free-kick. Goalkeeper Vasilis Barkas again failed to convince as he barely moved towards the area he was supposed to be covering.
And within two minutes Castillejo hauled Milan level as he finished from the middle of the box after Hauge's cross wasn't cleared by either Kristoffer Ajer or McGregor.
Lennon looked on in disbelief at his side's sloppiness, but it is a continuing theme. Celtic had the joint-worst defensive record in this term's Europa League before this game. They now stand alone in that regard having conceded 17 in five matches.
Hauge showed superb skill for Milan's third as he weaved in from the left before finding the far corner, but again the defending, or lack of it, from Celtic was lamentable as at least four green shirts failed to put a challenge in.
Milan are flying high at the top of Serie A, and it was always going to be a tough ask, even at 2-0 up. And the positives for Celtic are that they created more chances than they might have expected.
At 3-2, Frimpong had an effort pushed wide by Donnarumma, while Christie also forced the Italy international into a fine stop with a well-struck free-kick.
But they ended in typical fashion, as Hauge again waltzed into the box and through a meek challenge by Hatem Elhamed before setting up Diaz to loft the ball into the far corner and seal victory.
Man of the match - Jens Petter Hauge
What did we learn?
Lennon has consistently spoken about a lack of confidence being Celtic's problem. But even with the perfect start they crumbled.
The defensive problems are about more than just belief. Team selection and formation has varied throughout the season, and here Frimpong played as a right winger, rather than full-back, presumably to relieve him of defensive duties.
He was a threat, especially, early in the game, but Hauge still found himself in acres of space on the left time and again, and he punished Celtic on three separate occasions with two assists and a goal.
Yes, Stefano Pioli's side are flying in Serie A and a narrow defeat in isolation is not a terrible result. But, from the outside at least, changes in formation and personnel are having no discernible effect on Celtic's defence. The Lazio win now seems like a lifetime ago.
- Milan have won their last five home matches against Celtic.
- Celtic have won just two of their 25 away matches in the Europa League (D11 L12).
- Since the start of 2013/14, only Lionel Messi (36) has scored more direct free-kicks among players in the top five European Leagues than Calhanoglu (18).
- Edouard has been involved in seven goals in eight Europa League starts (5 goals, 2 assists).
- Rogic netted his first Europa League goal in his 16th appearance in the competition.
- There were just 121 seconds between Milan's first two goals.
Celtic will aim to keep pace with Scottish Premiership leaders Rangers when they host St Johnstone on Sunday (15:00 GMT), followed by their last group match at home to Lille on Thursday.
- 99G Donnarumma
- 24KjaerSubstituted forRomagnoliat 11'minutes
- 79KessiéSubstituted forBennacerat 61'minutes
- 33KrunicSubstituted forTonaliat 45'minutes
- 7Castillejo Azuaga
- 10CalhanogluSubstituted forDíazat 61'minutes
- 12RebicSubstituted forColomboat 83'minutes
- 20Kalulu Kyatengwa
- 43Campos Duarte da Silva
- 90A Donnarumma
- 8BrownBooked at 75minsSubstituted forSoroat 78'minutes
- 18RogicBooked at 67minsSubstituted forNtchamat 67'minutes
- 17ChristieBooked at 23minsSubstituted forKlimalaat 86'minutes
- Ricardo de Burgos Bengoetxea
- Shots on Target
Second Half ends, Milan 4, Celtic 2.
Attempt saved. Jeremie Frimpong (Celtic) right footed shot from outside the box is saved in the bottom left corner. Assisted by Diego Laxalt.
Foul by Theo Hernández (Milan).
Jeremie Frimpong (Celtic) wins a free kick in the attacking half.
Foul by Sandro Tonali (Milan).
Olivier Ntcham (Celtic) wins a free kick in the attacking half.
Foul by Ismael Bennacer (Milan).
Patryk Klimala (Celtic) wins a free kick in the defensive half.
Attempt missed. Sandro Tonali (Milan) right footed shot from outside the box is high and wide to the right following a corner.
Corner, Milan. Conceded by Callum McGregor.
Attempt blocked. Brahim Díaz (Milan) right footed shot from outside the box is blocked. Assisted by Jens Petter Hauge.
Theo Hernández (Milan) wins a free kick in the attacking half.
Foul by Jeremie Frimpong (Celtic).
Substitution, Celtic. Patryk Klimala replaces Ryan Christie.
Attempt missed. Ryan Christie (Celtic) left footed shot from outside the box misses to the right from a direct free kick.
Foul by Brahim Díaz (Milan).
Jeremie Frimpong (Celtic) wins a free kick in the attacking half.
Attempt missed. Olivier Ntcham (Celtic) right footed shot from outside the box misses to the right.
Attempt blocked. Ryan Christie (Celtic) right footed shot from outside the box is blocked. Assisted by Odsonne Edouard.
- Missed Industry?: Fast-living, expensive exploits and fallouts await in this hit new drama
- Barack Obama Exclusive: The former president on his cautious optimism for the future and more