Cristiano Ronaldo may have been unusually wasteful but Manchester United are in sight of a place in the Champions League final.
The Portugal winger missed a penalty after only three minutes at the Nou Camp and the chance of giving the side a precious away goal.
United were rarely seen as an attacking force after that but they will go into the second leg at Old Trafford next Tuesday with quiet confidence.
Despite the absence of Nemanja Vidic, who was rushed to hospital last night with a stomach complaint, they defended resolutely and kept a clean sheet.
Ronaldo with 38 goals to his credit was left frustrated when Gabriel Milito handled inside the penalty area in the second minute of the game.
Swiss referee Massimo Busacca had no hesitation in pointing to the spot, waving away protests from Barcelona.
Ronaldo stepped up to take the penalty kick - only to see his effort hit the stanchion.
The Portugal winger was left holding his head in his hands after missing a golden opportunity of giving United a precious away goal.
Alex Ferguson's side struggled to find their rhythm in the first half, with Barcelona having the majority of possession.
Lionel Messi picked out Samuel Eto'o in the 13th minute only for Paul Scholes - on his 100th Champions League appearance - to make a vital interception.
Ronaldo did not seem to be suffering from a lack of confidence, however, after blundering from the spot - and continued to take players on.
Barcelona pressed forward again in the 21st minute and Rafael Marquez got clear of his marker but his header failed to trouble goalkeeper Edwin Van der Sar, who was back in the side following a groin injury.
Then Yaya Toure showed good skill for the home side and sent a good cross into the area which was turned away by Van der Sar.
Ronaldo felt he should have had another penalty in the 30th minute when he was bundled over by Marquez after Xavi had carelessly lost possession.
However referee Busacca would have none of it and allowed play to continue, leaving the United winger frustrated.
Barca were dictating the tempo at this stage and Eto'o rattled in a shot after 34 minutes but Wes Brown made a vital block.
Brown was partnering Rio Ferdinand in the heart of defence in the absence of Vidic with the recalled Owen Hargreaves operating at right back.
Brown was showing little sign of the knock that forced him to train away from the main group last night.
Barcelona were spraying the ball around well, however, and won a free-kick in the 38th minute.
But Deco got little power on his effort and Van der Sar made a comfortable save.
United hit back and Marquez was booked in the 44th minute after tripping Ronaldo as he attempted to surge forward.
Ronaldo dusted himself down but sent his effort from an acute angle wide of the post.
Barcelona were quickly on the offensive at the start of the second half and Messi saw his effort blocked in the 47th minute, before Van der Sar did well to tip over Gianluca Zambrotta's long-range shot.
Eto'o skipped away from Ferdinand and tried to pick out Messi - but Michael Carrick was perfectly positioned and made the clearance.
Eto'o got clear in the 52nd minute but sent his effort into the side-netting, before Deco tested Van der Sar three minutes later with a low drive.
The Dutch goalkeeper was equal to Xavi's effort from 20 yards before Messi - who had only recently returned from injury - was replaced by Bojan Krkic in the 63rd minute.
Bojan was no less a threat than the Argentinian, having scored the winning goal in the quarter-final first leg against Schalke.
United were finding it difficult to set up any attacks, leaving Ronaldo, Rooney and Carlos Tevez fairly isolated up front.
Former Arsenal favourite Thierry Henry was called into the action after 77 minutes with Deco coming off.
Henry quickly picked up the pace of the game and rattled in a shot after 83 minutes that Van der Sar beat away.
The United goalkeeper then got his body behind a Henry free-kick as United held out for a creditable draw.
Loading more stuff…
Hmm…it looks like things are taking a while to load. Try again?