Los Angeles starter Jered Weaver also pitched respectably, working four innings. But his defense betrayed him in the first inning, when left fielder Brennan Boesch's two-base error put Gregor Blanco in position to score on Sandoval's first of two singles.
Consecutive one-out singles by Blanco, Brandon Crawford and Sandoval widened the Giants' lead to 2-0 in the third inning. They added a run in the fifth against reliever Nick Maronde as Hunter Pence singled and scored on Morse's double.
"It went all right," Weaver said of his outing. "I felt good coming out of it. Probably left a couple pitches up, a little excited, but other than that, I felt pretty good out there."
The Angels rallied for a pair of seventh-inning runs. Albert Pujols singled and was replaced by pinch-runner Efren Navarro, who scored on Boesch's triple. Boesch came home on pinch-hitter Carlos Pena's groundout.
Up next: C.J. Wilson makes his second start of the spring Thursday, opposite former teammate Dan Haren, when the Angels face the Dodgers from Tempe Diablo Stadium. It'll mark the first and only meeting in Cactus League play between the two teams, who will also face off in the three-game exhibition Freeway Series in Southern California from March 27-29. Game time is 12:10 p.m. PT and can be seen on FOX Sports West or MLB.TV. Wilson gave up three runs on three hits in two-plus innings in his spring debut.
Chris Haft is a reporter for MLB.com. Read his blog, Haft-Baked Ideas, and follow him on Twitter at @sfgiantsbeat. This story was not subject to the approval of Major League Baseball or its clubs.