Cliff Pennington followed with a double, Gerardo Parra and Martin Prado were walked and Eric Hinske gave the D-backs the lead for good with a two-run double.
Alfredo Marte, who may be in line for an Opening Day roster spot if Cody Ross starts the season on the disabled list as expected, followed a Wil Nieves single and a Paul Goldschmidt walk with a monster home run to finish off the D-backs' rally.
Arizona closer J.J. Putz struck out two in a clean ninth to end the game.
Weaver, who will start April 1 against the Reds in Cincinnati allowed two hits, walked a batter and hit another while striking out three over seven innings.
"That's a terrific outing," Angels manager Mike Scioscia said. "There's some good hitters in their lineup and he was just working spots all night and did a great job. I think the fact that he got seven complete and did it in really economical fashion is important. Not only is it a good workout to get where he needs to be, but it's a confidence boost."
Meanwhile, Kennedy, who takes the ball April 1 against the Cardinals at Chase Field went 6 2/3 innings and allowed two hits, both on bunts. He walked one and fanned eight.
"Both of those guys threw the ball well," D-backs manager Kirk Gibson said. "That was good stuff."
The Angels threatened in the first when speedster Peter Bourjos led off with a bunt single. Bourjos advanced to second on a wild pitch and when Kole Calhoun struck out and the ball got away from catcher Miguel Montero.
Kennedy, though, struck out Hank Conger to end the inning.
The D-backs lost a trio of players to injury during the game. Second baseman Aaron Hill was removed after being hit in the left little finger with a pitch in the first inning, shortstop Willie Bloomquist strained his right oblique on a swing in the third and left in the middle of his at-bat, and left fielder Jason Kubel was removed in the fifth after experiencing discomfort in his left ankle.
Up next: The Angels will conclude their Cactus League schedule by hosting the Rangers at Tempe Diablo Stadium at 1:05 p.m. PT on Wednesday. With most of the regulars are already back in Southern California getting ready for the three-game Freeway Series exhibition against the Dodgers, Garrett Richards, a heavy favorite for a bullpen spot, will start opposite lefty Michael Kirkman. Relievers Jerome Williams and Ernesto Frieri are also slated to pitch.