Cliff Pennington also drove in a run for the A's, who won their fourth in six games.
Gio Gonzalez (14-8) matched his career-high fourth straight victory after allowing three runs and six hits over 6 2-3 innings. He walked two and struck out nine.
Russell Branyan hit a two-run homer and Matt Tuiasosopo hit a solo shot for the Mariners, who fell to 6-12 since a three-game winning streak Aug. 17-20.
Luke French (4-5) lasted 5 1-3 innings, allowing four runs and seven hits. He walked two and struck out three.
Ichiro Suzuki had two hits to extend his current hitting streak to 10 games, the fourth time this season he has reached double figures. He moved into 168th place on the all-time hits list with 2,213. He needs one more to tie Joe DiMaggio for 167th.
Seattle scored all three of its runs in the first two innings. Chone Figgins, who had two hits, singled ahead of Branyan's home run in the first. Tuiasosopo hit a one-out homer in the second.
Gonzalez retired 11 of the next 12 batters he faced to give the A's a chance to rally.
Steve Tolleson singled ahead of Crisp's home run in the third.
The A's had two runners on in the sixth when French was replaced by Jamey Wright, who gave up Pennington's RBI groundout and Crisp's RBI single.
NOTES: The A's stole four bases in the sixth inning, matching their game-high. ... Suzuki has a hit in 19 of his last 20 games in Oakland. ... The Mariners matched their season-high five consecutive games with a home run. ... Crisp has been successful on his last 16 steal attempts, the longest streak for an A's player since Rickey Henderson swiped 17 straight between May 9-June 11, 1998. ... Ellis has a season-high nine-game hitting streak.