United arguably shaded the match against an off-colour Barca, but the Spanish champions did enough to secure a narrow advantage ahead of the return fixture at Camp Nou next week.
Nemanja Matic and Ander Herrera both missed out for United, meaning that there were spots in midfield for Scott McTominay and Fred. There was also a position in the XI for Diogo Dalot, who started as a wing-back.
As for Barca, Ousmane Dembele was only fit enough for the bench, so Philippe Coutinho once again joined Lionel Messi and Luis Suarez in the final third. Elsewhere, Nelson Semedo and Arthur were preferred to Sergi Roberto and Arturo Vidal, while Gerard Pique faced his former club.
It was actually the first meeting between the two teams since the 2011 Champions League final, when the Spanish giants triumphed courtesy of a 3-1 win in the English capital.
Barca were having so much of the ball early on, though, and took the lead when Luis Suarez's header from a Messi cross hit Shaw before dropping into the back of the net.
The opener had initially been ruled offside but was eventually given following a VAR check, with a Shaw own goal being credited as the Catalan giants got their name on the scoresheet.
Fred smashed a free kick into the Barca wall before Rashford missed the target from distance in the period that followed as United attempted to answer back. The hosts also had a penalty shout in the 29th minute when McTominay - excellent on the night - went down inside the box under a challenge from Pique, but the referee waved play on.
Moments before, Messi had picked up a bloody nose following a challenge with Chris Smalling, which led to a fairly lengthy stoppage so the Argentine could receive treatment.
United were having positive moments as the first period approached its latter stages, but Ole Gunnar Solskjaer's side were finding it difficult to test Ter Stegen, who was well-protected by his back four.
Down the other end, David de Gea had to make a stunning save to keep out a Coutinho strike in the 36th minute, before Dalot passed up a huge chance for the hosts when he headed across goal rather than towards the target from a deep Rashford cross.
United might have been behind at the interval, but Solskjaer would have been pleased with what he saw in the first 45 minutes, with the 20-time English champions more than holding their own.
Rashford had a super chance to level the scores early in the second period when the ball fell for the England international inside the Barca box, but he got his volley all wrong.
The visitors continued to relinquish the ball in what was a sloppy start to the second half from Ernesto Valverde's side, but Shaw's own goal remained the difference approaching the hour mark.
Luis Suarez struck the side of De Gea's goal in the 65th minute before Barca made two changes, with Roberto and Vidal replacing Arthur and Coutinho.
De Gea then had to keep out a low strike from Alba, which prompted United to make their first alteration - Anthony Martial taking the place of Lukaku, who largely struggled to make his mark at Old Trafford.
Rashford missed the target from a free kick in the 70th minute, before Jesse Lingard became the home side's second change as Solskjaer looked for some inspiration.
Barca had the chance to score a second in the 83rd minute when Messi stood over a free kick outside the box, but the Argentine's effort was deflected into the arms of De Gea. Pique then made a huge challenge down the other end to prevent Martial from releasing a shot from a dangerous position.
United continued to press for a leveller in the final moments, but Barca kept their clean sheet intact to ensure that they would take an advantage into the second leg next week.
MANCHESTER UNITED (5-3-2): De Gea; Young, Smalling, Lindelof, Shaw, Dalot (Lingard 74'); Pogba, McTominay, Fred; Rashford (Pereira 85'), Lukaku (Martial 68')
BARCELONA (4-3-3): Ter Stegen; Semedo, Pique, Lenglet, Alba; Arthur (Roberto 66'), Busquets (Alena 90'), Rakitic; Coutinho (Vidal 65'), L Suarez, Messi