The Argentina international equalized Robinho's opener to save a point for the Catalans at San Siro on Tuesday
The hosts took the lead early in the match with a well-worked move that saw Kaka set up his Brazilian teammate Robinho to give Milan an eighth-minute lead.
But Messi, who was making his first start since recovering from a thigh problem, saved a point for the Catalans.
Robinho and Adriano Correia both missed excellent opportunities to secure all three points in the second half, but neither could force either goalkeeper into action.
Marco Amelia replaced Christian Abbiati in goal for the hosts, while Mario Balotelli was fit enough to take his place on the bench after recovering from thigh problem of his own.
Messi returned to the Barcelona starting lineup after coming on a substitute in Barca's goalless draw with Osasuna at the weekend, although Carles Puyol was rested.
Milan started well and looked threatening with Kaka and Robinho, and the latter opened the scoring in the ninth minute.
The Brazilian pair linked up well on the counterattack and, when Kaka rolled a perfect pass across the penalty area, Robinho made no mistake as he fired past Victor Valdes.
Barcelona raised its game after being stunned by the former Real Madrid striker's goal and began to control large spells of possession, Messi going close to an equalizer from a free kick before he did level the score midway through the first half.
Messi drifted in off the right to receive a pass from Iniesta, beat his defender and rifled the ball into the bottom corner to give Amelia no chance.
Both sides had chances to take the lead before halftime, but both Philippe Mexes and Alexis Sanchez missed from close range.
The hosts should have retaken the lead seven minutes into the second half only for Robinho to miss when unmarked inside the penalty area.
Milan broke on the counterattack as Sulley Muntari was released down the left and he delivered an early cross into the penalty area that evaded Gerard Pique and left the Brazilian with the simple task of firing home, but he missed his kick and the ball rolled to safety.
With 20 minutes remaining, Adriano could have scored for the Liga side but wasted a fantastic opportunity. The Brazilian was picked out perfectly by Messi, after escaping the attentions of Kaka, but fired wide from close range.
The result leaves Barcelona top of Group H with seven points, two clear of Milan after its opening three matches.