Wayne Rooney's header put United ahead after just eight minutes, before Jesse Lingard doubled the Red Devils' advantage in the 65th minute.
Rafina pulled one back for Barca late on with a superb volley in the 90th minute, but Adnan Januzaj ended any thoughts of a Barcelona recovery when he added a third just a minute later.
Barcelona were without the services of Neymar and Lionel Messi, and in their absence Luis Suarez struggled to leave his mark, twice hitting the woodwork while enduring some rough treatment from Phil Jones.
In an evenly-contested first half, it was Barcelona who had the early chances, with Suarez's thunderbolt of a freekick cannoning back off the upright with David De Gea rooted to the spot.
The Spaniard would then be called on to save when Sergi Roberto was through on goal in what was an eventful opening five minutes.
It was United who gained the early advantage on the scoreboard though, with Rooney out-muscling Adriano to head an Ashley Young corner past Marc-Andre ter Stegen.
United looked a little edgy in defence, but strong on attack, and Rooney had a chance to make it two in the 25th minute when he rounded ter Stegen, but he couldn't find the target. The German shot stopper was then called on to tip Young's strong effort over the bar.
In a moment that summed up Suarez's day, the Uruguayan hit the woodwork once more to close out the opening 45 minutes after carving out a shot that had De Gea beaten.
Van Gaal rang the changes in the second period, brining on an all-changed line-up on the hour mark, and he didn't have to wait long for the substitutions to pay dividends.
In a move made by United's young guns, Tyler Blackett and James Wilson exchanged passes in a neat one-two before Blackett rolled the ball to the back post where he found Lingard who drove home from 10 yards out.
Barcelona struggled to get back into the contest, but they were handed a lifeline in the 90th minute when Rafina produced a beautiful left-footed volley from a Roberto cross from the right that beat replacement keeper Sam Johnstone.
United didn't have to wait long to restore their two-goal lead though, with Januzaj punishing Marc Bartra for dithering at the back as the Belgian got on the end of a long ball from Andreas Pereira before slotting past Masip.