Weaver (18-4) allowed three runs on six hits over seven innings in his 100th career victory, which was also the Halos' fourth win in their last five starts.
Chris Ianetta notched a two-run single and Eric Aybar went 3-for-4 with an RBI to lead the Angels' 11-hit attack.
Los Angeles broke the game open in the fourth with eight runs, two of which scored on a wild pitch by Tanner Scheppers.
Ryan Dempster (6-2) took the loss. Dempster was rattled by five runs on six hits and three walks in 3 1/3 innings.