Having matched AC Milan for 180 minutes, Celtic suffered a cruel extra time loss to exit the Champions League.
Kaka was the outstanding match-winner for AC Milan
The visitors had a strong penalty claim early on when Paolo Maldini used an arm to block a shot from Jiri Jarosik.
In the last few minutes of normal time Artur Boruc made two excellent saves to deny Maldini and Clarence Seedorf, while Kaka hit the bar with a shot.
But Kaka drilled in a great solo goal to settle the tie and end Celtic's European dream for the season.
It was fitting that a moment of brilliance from the player to shine brightest over both legs won the contest.
But it was tough luck on Celtic, who battled so hard to push their illustrious opponents all the way.
Boruc was called into action inside four minutes and was at full-stretch to push away a curling shot from Kaka after some neat footwork from Seedorf.
But Gordon Strachan's side rallied immediately and were most unfortunate not to win a penalty kick when Maldini charged down a close range effort from Jarosik with his raised arm.
Kaka was given a glimpse of goal when Celtic failed to clear a 17th minute corner convincingly but the Brazilian star sliced his 15-yard strike wide.
Andrea Pirlo curled a free kick off target before Celtic left-back Lee Naylor made a wonderful goal-saving tackle.
Seedorf rolled a great pass across the six-yard box and, as Filippo Inzaghi looked poised to convert, the defender slid in to take the ball off the striker's toe.
Jan Vennegoor of Hesselink was isolated as Celtic's lone striker as Kaka grew in influence for the home side.
And Naylor was again the Celtic hero when he was on hand to clear a dangerous low strike from the Brazilian just a few yards from the goal-line.
Five minutes before the interval, Celtic almost got a lucky break when Daniele Bonera's headed clearance hit team-mate Massimo Oddo and ricocheted towards goal, but Dida reacted quickly to make the save.
Celtic battled gamely only to lose out at the San Siro
The pattern of play was similar after the break, with AC Milan pushing on and Celtic defending stoutly.
Inzaghi hit the side-netting with an ambitious effort before taking a tumble under a challenge from Naylor. Fortunately for Celtic, referee Konrad Plautz ruled that the offence had taken place right on the edge of the penalty box.
With six minutes remaining, Maldini powered forward to connect with a deep cross from Pirlo but Boruc made a great stop to keep out the Italian's close range header.
Soon after, the Polish international topped that when he got fingertips to a Seedorf free kick that looked destined for the top corner.
Boruc was then powerless to stop Kaka's strike from 18 yards but the ball came crashing back off the crossbar and the game went into extra time.
Having battled so hard to match the six-times champions of Europe, Celtic were undone by Kaka three minutes into the extra period.
The game's outstanding player slipped away from Neil Lennon on the halfway line and drove past McManus with a wonderful change of pace before sliding a shot through the legs of the advancing Boruc.
Pirlo was then given time and space to shoot from 20 yards but Boruc produced another great save.
Celtic threw on strikers Craig Beattie and Kenny Miller but could not muster the energy to pressure Dida's goal.
AC Milan: Dida, Oddo (Simic 116), Bonera, Maldini, Jankulovski, Gattuso (Brocchi 79), Pirlo, Ambrosini, Seedorf, Kaka, Inzaghi (Gilardino 73). Subs Not Used: Kalac, Favalli, Gourcuff, Oliveira.
Goal: Kaka 93.
Celtic: Boruc, Telfer, McManus, O'Dea, Naylor, Nakamura (Miller 106), Lennon, Sno (Beattie 97), McGeady, Jarosik (Gravesen 62), Vennegoor of Hesselink. Subs Not Used: Brown, Wilson, Kennedy, Riordan.
Booked: McManus, Naylor, McGeady, Lennon.
Ref: Konrad Plautz (Austria).