The Japanese midfielder scored the only goal of the game as Sir Alex Ferguson's side cruised to victory in its third and final fixture of its preseason tour abroad
The Japanese midfielder volleyed home in the 68th minute, making no mistake from six yards after Bebe picked out the 23-year-old in space in the penalty area.
Shanghai rarely threatened the United goal but its best chance fell to Joel Griffiths, who was denied by Anders Lindegaard as Sir Alex Ferguson's side ran out comfortable victors despite the narrow scoreline.
Ferguson named a strong side to begin the match, with new signing Kagawa making his second start of pre-season. Nick Powell was included in the initial United XI for the first time since joining from Crewe Alexandra earlier this summer.
Lindegaard was selected in goal while stalwarts Rio Ferdinand and Michael Carrick anchored the defence, with youngsters Frederic Veseli and Robbie Brady operating at right and left-back respectively.
Shanghai was without former Chelsea duo Nicolas Anelka and Didier Drogba, who were both rested due to the busy Chinese domestic schedule.
United started the game on the front foot, with Brady causing problems down the left, and the Red Devils will have felt aggrieved not to have been awarded a penalty after the Irishman was brought down in the area.
Ferguson's side should have been ahead in the 23rd minute when Davide Petrucci played a lovely through ball for Powell, who was one-on-one with Shengjiong Qiu after beating the offside trap but could only put his right-footed effort wide of the post.
The Chinese side was struggling to get a hold of the ball and when it did it made too many mistakes in possession.
Anderson and Kagawa nearly capitalized on one of these errors as the Brazilian intercepted a pass and found his team-mate with a pinpoint ball, but the Japanese was crowded out as Shanghai flooded back in numbers before he could shoot.
United was exerting pressure in the home side's half but couldn't produce the final ball they needed to get through the Shanghai backline, with Brady especially wasteful from good positions.
The home side almost made United pay for its lack of clinical edge but Griffiths' effort was well saved by Lindegaard, who tipped the ball over the bar after the striker had beaten the challenge of Ferdinand to advance through on goal.
United started the second-half strongly and went agonizingly close to taking the lead through Anderson, whose left-footed shot from outside the area flew inches past the post following good work from Kagawa.
The former Borussia Dortmund star was impressing for the Red Devils, going on to beat his man before sliding a sublime ball to Federico Macheda, who couldn't find the net when well placed in the area.
Ferguson's side continued to press for the opener and Shanghai was grateful to keeper Qiu for keeping it level as he made a great stop to deny Bebe, whose volley seemed destined for the net after he latched onto Antonio Valencia's cross from the right.
The Red Devils' pressure was finally rewarded in the 68th minute when Kagawa scored his first goal for the club, volleying the ball into the top corner, with the help of a slight deflection, following great work down the left wing from Bebe, who expertly found the 23-year-old unmarked in the box.
Substitute Paul Scholes almost doubled the lead minutes later as Marnick Vermijl raided down the right and found the midfielder with an accurate cross but the 37-year-old could only head the ball into the ground and over the bar.
The home side pressed for an equalizer late in the game but it was the visitors who looked more likely to score as Javier Hernandez came close to doubling its lead. The Mexican's shot rattled the crossbar but the miss did not prove costly as United ran out comfortable victors.