The win snapped Oakland's three-game skid and put the Athletics alone in second place in the American League West, a half game ahead of Los Angeles and 5 1/2 games behind the front-running Texas Rangers.
Colon allowed four hits and one unearned run in the win. He struck out five and did not walk a batter.
The Angels were held scoreless until the top of the seventh inning when they trailed 9-0.
Mike Trout and Erick Aybar homered for the Angels, who lost for the fifth time in seven games.
C.J. Wilson (9-8) lost his fourth consecutive decision. He was tagged with six runs -- three earned -- on nine hits and five walks over five innings.
Oakland, who outhit the visitors 13-7, scored four times in the third inning.