The Argentine shrugged off his recent injury woes to ensure his side maintained top spot with a clinical finish on 23 minutes after Andres Iniesta had fed him on the right side of the area.
Milan started strongly and deservedly took the lead on nine minutes. Robinho took advantage of a mix-up between Gerard Pique and Javier Mascherano and exchanged a one-two with Kaka before coolly firing home.
The hosts then had a chance to regain the lead but Philippe Mexes headed a corner wide with Victor Valdes in no man's land.
Iniesta and Adriano wasted glorious opportunities to win it as the visitors pressed but the Rossoneri's defence held firm to claim a hard-fought point.
AC Milan have won only one of their last 10 Champions League games against Barcelona (4 draws, 5 defeats).
Barcelona have only lost one of their last 21 away Champions League games in the group stages (v Celtic, November 2012), winning 13 and drawing seven games.
AC Milan have won only nine of their last 34 Champions League games.
Lionel Messi has scored 26 goals in his last 23 Champions League games.
Messi has now scored six times versus Milan in the Champions League, equalling his personal best haul against both Arsenal and Bayer Leverkusen.
PRE-MATCH: Messi starts, Balotelli on the bench - After featuring as a substitute in the weekend stalemate at Osasuna, Messi returned to bolster Barca's frontline following injury. Milan weren't so fortunate with their talisman, as Balotelli was deemed only fit enough for the bench after picking up a knock on international duty with Italy.
9' GOAL! - Milan 1-0 Barca. Pique and Mascherano misjudge a bouncing ball, allowing Robinho to exchange a slick one-two with Kaka before finishing in style.
23' GOAL! - Milan 1-1 Barca. Messi levels it up as Iniesta sends the Argentine clear on the right. The diminutive hitman cuts inside before fizzing a low shot into the right-hand corner.
28' BIG CHANCE!- A Milan corner from the left leaves Valdes in all sorts of trouble but Mexes can't make it count as he powers his back-post header wide at the near post.
45' CLOSE! - The ball drops to Neymar on the left of the area and he flashes in a volley that sears inches past the far post. Unlucky.
53' WHAT A MISS! Milan counter down the left through Muntari who drops a perfect cross into the path of Robinho who inexplicably dummies the ball to no one with the goal gaping! Huge let off for Barcelona.
55' GOOD SAVE! Amelia denies Iniesta's scuffed toe-poke after the Spain man had latched onto Xavi's pass and powered his way into the area.
70' WHAT A MISS! - Barca patiently probe and then cut Milan open as Messi's chipped pass picks out the run of Adriano who takes a touch and then smashes wide at the near post. A bit more composure and that was surely 2-1.
TALKING POINT - Do Barcelona have the penetration to dominate in all competitions this season? The Blaugrana struggled to breakdown a resilient Rossoneri rearguard and were also held to a stalemate in La Liga at the weekend. Even with the magic of Messi, Neymar, Xavi and Iniesta they can be frustrated by the very best sides and you wonder if a lack of cutting edge may cost them in the latter stages of this competition. Milan showed they are susceptible on the counter attack.
MAN OF THE MATCH - Philippe Mexes (AC Milan) - Led by example at the heart of the Milan defence as Barca pressed for well over an hour. The Frenchman produced a series of goal-saving tackles and could have got on the scoresheet with a bit more composure in the first half.
PLAYER RATINGS -
AC MILAN: Amelia 7, Mexes 8, Zapata 7, Abate 6, Constant 7, Muntari 7, Birsa 6, Montolivo 7, de Jong 7, Robinho 6, Kaka 7. Subs: Balotelli 6, Emanuelson 6, Poli 5.
BARCELONA: Valdes 6, Alves 6, Pique 6, Mascherano 6, Adriano 6, Busquets 6 , Xavi 7, Iniesta 7, Alexis 6, Neymar 6, Messi 7. subs: Fabregas 6, Pedro 5.
THE MATCH IN A TWEET