AC Milan survived a prolonged Barcelona onslaught to hold their illustrious visitors goalless, but will be left wondering how they fluffed some golden chances to take a first-leg lead in their Champions League quarter-final.
A series of sublime Barca attacks produced no end product, while Milan had, but wasted, by far the better openings in the match.
The hosts managed to shut out Lionel Messi in red-hot form, though, to give themselves hope for the second leg at the Nou Camp.
Milan squandered their first opening in only the third minute. Space opened up for Kevin Prince-Boateng on the edge of the area, but he hesitated for a split-second and Gerard Pique charged down the shot.
The ball was then headed back in to give Robinho an even better chance unmarked on the edge of the six-yard box, but he skied the ball horribly over the crossbar when it looked a certain goal.
Messi, one goal shy of 50 in the competition, gained some unwanted attention from a laser pen as he lined up a free-kick on the edge of the area, but could only blame the turf as he slipped while taking it, with Seydou Keita was offside as he tried to head in the unintended cross.
Messi then saw Christian Abbiati spill one of his shots, but the ball somehow evaded the advancing Daniel Alves as Milan survived.
Barca, though, should have had a penalty moments later when Alexis Sanchez fell over Abbiati after beautiful play from Xavi and Sergio Busquets, but the Chilean perhaps went over too easily and was told to get up.
Barca were passing the ball about at speed and forcing passes through seemingly impossible gaps, but they continued to stutter when it mattered, with Messi offside as he tapped in an Alves cross, while Abbiati denied Xavi.
Amid it all, a first-time ball from Clarence Seedorf put Zlatan Ibrahimovic clean through, but goalkeeper Victor Valdez raced out to make a fine save at point-blank range.
Sanchez then looked to have broken clear, but Luca Antonini did not give it up and made a brilliant recovering tackle to prevent the shot.
The second half failed to capture the imagination in quite the same way.
Andres Iniesta cut in from the left to send an early shot wide, but it was hardly a sign of things to come as the game became scrappy thanks to a series of fouls and some unnecessary falls.
Milan lost Robinho to an injury amid the tumbles, but at least cut down the number of direct threats on their goal.
They should have been attacking themselves in the 67th minute when Urby Emanuelson came on to be handed the chance of an instant impact, only to scuff his first touch when a long ball put him clean through.
Barca began to threaten again going into the final 15 minutes. Substitute Cristian Tello fired high into the side-netting from a tight angle and then Messi saw a shot charged down and deflected wide.
From the resulting corner, Carles Puyol's diving header across goal went narrowly wide.
Their best chance of the half came right at the end when Messi stayed on his feet as Milan defenders fell about him, firing in a powerful shot which Abbiati could only parry across goal.
It rolled teasingly towards Tello as he raced in, but cover arrived in the nick of time for Milan.
AC Milan Abbiati, Bonera, Nesta (Mesbah 74), Mexes, Antonini, Nocerino, Ambrosini, Seedorf, Boateng (Emanuelson 67), Robinho (El Shaarawi 52), Ibrahimovic.
Subs Not Used: Amelia, Aquilani, Maxi Lopez, Yepes.
Booked: Seedorf, Nesta, Ambrosini.
Barcelona Valdes, Dani Alves, Pique, Mascherano, Puyol, Iniesta (Tello 65), Busquets, Xavi, Keita, Messi, Sanchez (Pedro 76).
Subs Not Used: Pinto, Fabregas, Thiago, Muniesa, Montoya.
Att: 70, 628
Ref: Jonas Eriksson (Sweden).