Kaka and Cristian Zapata pounced on two pieces of abject defending at corners by the home team to score in the 13th and 49th minutes at Celtic Park, before Italy striker Mario Balotelli wrapped up victory in the 59th.
With Ajax beating already-qualified Barcelona 2-1 elsewhere Tuesday, Celtic is not just out of the Champions League but also out of contention for a place in the Europa League's last 32.
Milan holds a one-point lead over Ajax heading into their meeting in the last group stage matches in two weeks, with the winner joining Barca in advancing.
The Italian club had arrived in Glasgow in the grip of a crisis back home after going five games without a win in Serie A, sparking unrest among fans and piling the pressure on coach
Massimiliano Allegri with the team marooned in the middle of the standings. Even star striker Balotelli was feeling the heat after missing a penalty in Saturday's 1-1 draw with 10-man Genoa and going six matches in all competitions without a goal.
"This is the end. :-)" Balotelli tweeted in the early hours of Sunday. The situation appears much rosier for Balotelli and his teammates three days on, at least on the European front, with this first away win in any competition this season.
Kaka has been one of the few reliable Milan players in recent weeks and he was somehow left unmarked inside the six-yard box from Valter Birsa's inswinging corner. With his marker,
Virgil van Dijk, well out of position, Kaka had the simple task of directing his header into the bottom corner as goalkeeper Fraser Forster stayed rooted to his line.
It undid a lot of good early work from Celtic, with Milan's defense looking porous from the start, but the visitors carried a constant threat going forward. Balotelli shot just over in the 26th before Kaka found space outside the area and curled narrowly wide three minutes later.
Celtic's best chance of an open first half fell to Charlie Mulgrew, who bundled his way into the area but sidefooted his effort at goalkeeper Christian Abbiati.
And Milan was given an even bigger let-off just two minutes after the break when Mulgrew lofted a ball into the box to an unmarked Van Dijk, who sent a volley from point-blank range straight at the body of Abbiati.
Zapata's punished the hosts' profligacy by making it 2-0, tapping in at the far post after Antonio Nocerino had volleyed a corner from Birsa back into the six-yard box. Once again, Celtic's defending was dreadful.
Balotelli was playing as Milan's lone striker but he was proving difficult to handle for Van Dijk and fellow center back Efe Ambrose, and he showed great composure for his goal just before the hour mark.
Riccardo Montolivo lofted a through-ball over the Celtic defense and Balotelli got in behind his two markers to slot a neat finish into the bottom corner.
Celtic will finish bottom of the standings after this result, so either Milan or Ajax will place third and play in the Europa League next year.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)