Weaver (17-7) held the A's to one run on six hits over seven frames, walking two and striking out one while racking up a career high in victories.
It was the second straight strong start for the Angels' ace, who got a no-decision in his previous start Friday, in which he struck out 11 New York Yankees over eight innings.
The second-place Angels started the day 3 games behind Texas in the American League West with 13 games to go. The Rangers maintained the 3-game advantage with a 9-1 win over Cleveland Wednesday night.
Harden went 5 1/3 innings for Oakland, yielding three runs on seven hits as the A's dropped the rubber match of a three-game series.