The draw leaves Barcelona top on seven points with Milan in second on five while Celtic are third with three having beaten Ajax 2-1 also on Tuesday.
Massimiliano Allegri's Milan side had been hit with several injuries with striker Mario Balotelli starting on the bench due to a recent thigh problem.
Lionel Messi had been suffering from a similar problem but started for the Spanish giants and, after levelling Robinho's ninth-minute opener for the Rossoneri in the 23rd minute proved a thorn in Milan's side all night.
Barcelona started sluggishly and Marco Amelia, replacing the injured Christian Abbiati in the Milan goal, had had little to do early on.
Moments after the 'keeper's first touch, Robinho gave Milan a deserved lead.
The Brazilian won possession from Gerard Pique after a mix-up with Javier Mascherano and held off the big defender to slip the ball to Kaka, whose return ball found Robinho six yards out and free to fire the ball past Victor Valdes.
Barcelona's first real chance came from a free kick on 18 minutes after Dani Alves's cross from the right was handled by Kaka but Messi's curling effort was wide of target.
Messi edged closer with a shot across goal which forced Amelia down low, but the Argentinian made no mistake when Milan made their own blunder in midfield.
An overhit pass gave Andres Iniesta possession and after he threaded a long ball through Messi deftly skipped half-challenges by Phillipe Mexes and Kevin Constant to shoot low inside Amelia's left-hand post.
Mexes then sent a header just wide of the post from a corner with Valdes beaten, but the Barca 'keeper was not alone in showing some nerves. When Alves hit a cross towards the far post Amelia was left scrambling before Cristian Zapata's leg blocked out Messi's dangerous-looking first-timer.
Amelia did better minutes later while blocking Sanchez's first-time effort and Zapata rescued Milan again, the Colombian sticking close to Messi as he hit a first-time shot from close in.
Barely a minute later Neymar was denied what would have been a wonderful goal when he sent an angled half-volley just wide. Barcelona started the second half brighter but Robinho spurned a golden chance to put the hosts ahead when he completely missed the ball after Constant's long cross had sent him clear.
Barcelona were more compact and their high pressing was causing Milan problems -- Amelia had to perform heroics to keep out Iniesta's shot from inside the area after the midfielder had been sent through.
Balotelli replaced Robinho in the 64th minute and was unclucky not to get a touch on Constant's fierce drive. Barely a minute later a superb cross from Alves found Adriano deep in the area but the left-back's first-time effort curled wide of Amelia's post.
Urby Emanuelson replaced the tiring Kaka with 19 minutes remaining, with Cesc Fabregas replacing Sanchez. Fabregas came close when he got his head to Messi's free kick following a foul by Muntari on Sergio Busquets but Amelia was quick to collect.
Valter Birsa came off for Andrea Poli with 10 minutes remaining while Neymar was replaced by Pedro Rodriguez. The intensity of both sides evaporated in the dying minutes, however, although Muntari was left lamenting a scoring chance when he stumbled and failed to capitalise after being sent through.
Barcelona kept pressing, however, and Milan survived a late scare when Mexes headed out a probing cross for a corner in the final minutes.