The visitors had their chances, among them a penalty claim on Alexis Sanchez that was denied, but a sterling defensive display by Massimiliano Allegri’s men saw the Spanish outfit frustrated and sets up an enthralling second leg at Camp Nou in six days time.
An exciting start to the match saw Milan nearly storm into the lead after only three minutes. A scramble inside the penalty area saw the ball spill to Robinho in space, but with the goal at his mercy, he could not find the target as his volley flew over the bar.
The early shock did not faze Barca though, who slowly began to cause problems at the other end of the pitch. With 10 minutes gone, Lionel Messi’s low drive was fumbled by Christian Abbiati, who was fortunate to see Dani Alves scoop the rebound the wrong side of the post.
Abbiati was at the thick of things again within minutes, after he charged off his line to bring down Sanchez in the area. There did not appear to be much contact with the ball from the Milan keeper, but no penalty was forthcoming, leaving the visitors to remonstrate furiously with referee Jonas Errikson.
Not long after, the Catalans were able to find the back of the net, but the goal was correctly disallowed as Messi was in a clearly offside position when he turned home Alves’ cross.
Milan survived the scare, and saw another golden chance go begging with 20 minutes gone. Clarence Seedorf put Zlatan Ibrahimovic through on goal, but his finish was weak and easily smothered by Victor Valdes.
Barca were unsurprisingly able to control nearly two-thirds of possession, but some dogged defending from the hosts and the questionable state of the San Siro pitch prevented them from getting fully into their stride.
The Milan back line was caught out 10 minutes before half-time though, as Sanchez was put clean through, but Luca Antonini matched him stride for stride and got back to make a fantastic block just as the Chilean was about to pull the trigger.
Andres Iniesta sent another warning Milan’s way coming out of the interval, with a quick dart into space ending with a snap shot from the edge of the area that flew just wide.
However, Barcelona were finding it increasingly difficult to get a clear sight on goal as the second-half wore on, with Allegri’s men keeping their discipline and organisation at the back.
With 67 minutes gone, substitute Urby Emanuelson nearly made an immediate impact seconds after his arrival when he raced onto a through pass deep in the area, but his first touch was woeful and halted the move in its tracks.
Barcelona hit back soon after through a substitute of their own, with Tello finding space on the right side of the box and letting fly with an effort that rippled the side netting.
Tello caused more Milan hearts to flutter when his dangerous cutback saw Messi’s volley deflected just over the bar, and the resulting corner was headed just wide by Carles Puyol.
Minutes before the end, Abbiati was on hand to deny Messi, beating away the Argentine’s low drive, with Tello also thwarted from the rebound by another brilliant tackle from Antonini as Milan preserved the 0-0 scoreline.
Both sides will lock horns once more for the return leg at Camp Nou in six days time.