AC Milan spurned the best chances in a 0-0 draw against Barcelona in the first leg of their Champions League quarter-final at the San Siro.
Barcelona were unfortunate not to be awarded a penalty when Alexis Sanchez appeared to be tripped by Christian Abbiati but, that aside, Milan wasted by far the better openings in the match.
The first opening came 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.
Lionel 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 Abbiati spill one of his shots, but the ball somehow evaded the advancing Daniel Alves as Milan survived.
Barca should have had a penalty moments later when Sanchez fell over Abbiati after beautiful play from Xavi and Sergio Busquets, but the Chilean went over theatrically 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 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.