Ajax's 2-1 win over Barcelona means the Dutch champions and Milan will battle it out for second place while Celtic, who will finish bottom of Group H, head to the Nou Camp on matchday six with nothing but pride to play for.
Milan, who hadn't won away in Europe in almost a year, got off to the perfect start at Celtic's Parkhead ground on Tuesday when Kaka found himself with time and space to head home a 12th minute corner.
The Hoops were left to rue a missed opportunity for Virgil van Dijk just after the break when Cristian Zapata increased Milan's advantage with a 49th minute tap-in.
Van Dijk had a header chopped off for offside minutes later before Mario Balotelli ended Celtic's hopes when his strike made it 3-0 in the 59th minute as Milan became only the second side to defeat the Hoops at home in the group stages of the Champions League.
The win leaves Milan in second spot on eight points -- a point ahead of Ajax - and eases the pressure on coach Massimiliano Allegri, who has come in for criticism following his side's poor domestic form that saw fans protest outside the San Siro following a 1-1 draw with Genoa at the weekend.
Celtic were without captain Scott Brown and Nir Biton due to suspension for the must-win match while Joe Ledley dropped to the bench. Winger James Forrest, who earlier on Tuesday was arrested in connection with two alleged public indecencies, started the match.
The 22-year-old had been reported to the procurator fiscal (Scotland's public prosecutor) over the alleged offences in Prestwick, south-west of Glasgow, earlier this month.
AC Milan arrived in Glasgow with a lengthy injury list, defender Philippe Mexes and midfielder Sulley Muntari joining Stephan El Shaarawy, Mattia De Sciglio and goalkeeper Marco Amelia in being ruled out.
Celtic were presented with a great early chance when Charlie Mulgrew's effort fell kindly to Beram Kayal inside the box but the midfielder couldn't adjust his feet quickly enough and Zapata recovered to make a last-ditch saving tackle.
The Hoops were left to rue that miss moments later when Brazil star Kaka slipped marker Van Dijk to easily head home Valter Birsa's corner from close range.
Celtic were again the recipients of a ball breaking kindly to them in the Milan box but this time Mulgrew sent his weak shot straight at Christian Abbiati.
Balotelli had the ball in the net again just before the break after he chased after a long ball over the top but the flag was already up for offside.
The Hoops should have been level in the 47th minute. Mulgrew's cross found Van Dijk eight yards out but he sent his volley straight at Abbiati when he had the whole goal to aim for.
The Dutch defender's misery was compounded two minutes later when Milan doubled their advantage. Birsa's deep corner was fired back across goal by substitute Antonio Nocerino for Zapata to side-foot home from close range.
Van Dijk thought he had made some amends in the 51st minute when he headed Joe Ledley's cross beyond Abbiati but his effort was ruled out for offside.
Any hope Celtic had was ended in the 59th minute when Balotelli made it 3-0. The Italian striker collected a long ball from Riccardo Montolivo and shrugged off the challenge of Efe Ambrose before sending an angled shot past helpless goalkeeper Fraser Forster.