Kole Calhoun hit a two-run homer, while Mark Trumbo added two hits with an RBI for the Angels, who successfully shook off a four-game losing streak which included a sweep at the hands of Cleveland during the week.
Weaver (8-7) snapped a two-start losing skid, scattering three hits and one run with eight strikeouts.
Dustin Ackley's third-inning solo blast was the limit of offense for the Mariners, who were coming off a series win against Oakland.
Aaron Harang (5-11) began the game on a strong note, but was dented for nine hits and seven runs over 5 2/3 innings, despite fanning seven and walking only two.
Ackley put the Mariners on the board with a one-out solo homer in the third, and then the visitors cranked up their offense.
Seattle's starter retired 11 of the first 12 batters he faced. However, Josh Hamilton kept the LA fourth alive with a two-out double and Trumbo doubled him home, then Hank Conger was given a free pass ahead of Nelson's two-run triple and an RBI infield hit from Grant Green made it 4-1.
In the sixth, Green singled with two down and scored when Peter Bourjos tripled off the wall in left center. Calhoun then added a two-run shot for a six-run Angels advantage and Harang was finally pulled.
Three Mariners relievers combined to limit the Angels to five hits from there, but the hosts' offense remained dormant until their last chance.
Cory Rasmus made his Angels debut in the ninth. Brad Miller singled and moved up on a Kyle Seager groundout, Kendrys Morales walked and Raul Ibanez reached on an infield single. Justin Smoak could have pulled the M's closer, but fanned swinging to end the contest.
Weaver upped his career record against the Mariners to 13-8, matching his career high for wins against one team (Texas) ... Rasmus appeared in three games with the Braves, allowing six runs and eight hits over 6 2/3 innings ... Los Angeles has swept four series of at least three games on the road in 2013.
08/25 19:56:33 ET