Cespedes homered in the first inning and again in the ninth for his third career multihomer game all this month. Jed Lowrie and Coco Crisp also went deep for the Athletics, who maintained their one-game lead in the AL West over Texas.
Colon (10-2) gave up three runs and seven hits over eight innings, tying unbeaten Max Scherzer of the Detroit Tigers for most wins in the American League. Colon is 11-1 in his career at Safeco Field, the best record for any pitcher with at least seven decisions in the Mariners' home park.
Grant Balfour pitched the ninth for his 18th straight save to begin the season.
Nick Franklin hit a three-run homer for Seattle, which has lost three straight and five of six.
Hisashi Iwakuma (7-3) lost at home for the first time this season, giving up four runs and six hits including three homers in seven innings. His home ERA rose from 0.92 to 1.46.
The matchup between two of the American League's top starters turned into a relative slugfest.
Iwakuma had never given up more than two home runs in a game, and it was the first time in 18 career home starts he allowed more than one homer.
Franklin's three-run shot against Colon marked the first time the pitcher had allowed a home run or more than two earned runs in a game since May 14, before he started his winning streak.
Cespedes gave Oakland a two-run lead in the first inning with a shot that bounced off the upper-deck railing above the left field out-of-town scoreboard. It wasn't the first big hit Cespedes has had against Iwakuma he is 6 for 15 with three homers against the Mariners' starter.
Brendan Ryan singled with one out in the third for the Mariners' first hit, and after a single by Endy Chavez, Franklin's fourth home run gave Seattle a 3-2 lead.
Lowrie tied the game with a leadoff homer in the fourth, and Crisp pushed Oakland ahead with his solo drive that just cleared the right-field wall in the sixth.
The Mariners were hurt by a baserunning blunder in the sixth. After a leadoff single, Kyle Seager was thrown out trying to take two bases on a passed ball. Kendrys Morales' single and Raul Ibanez's walk gave Seattle two on with one out, but the Mariners were unable to push a run across.
Oakland added insurance runs in the ninth off reliever Tom Wilhelmsen. Lowrie led off with a single and Cespedes followed with another homer to left field, his 15th of the season.
NOTES: Oakland C John Jaso was a late scratch because of a left palm abrasion. ... Seattle promoted pitching prospect Taijuan Walker to Triple-A Tacoma. Walker, the Mariners' top pick in the 2010 draft, was 4-7 with a 2.46 ERA and 96 strikeouts in 14 starts for Double-A Jackson. ... Two of Seattle's 2013 draft picks, Austin Wilson (second round) and Lachlan Fontaine (13th), took batting practice before the game.