Cahill (10-13) gave up one run on five hits to pick up his first win since July 27. He struck out four and walked two for Oakland, which has won four in a row.
The right-hander, who was 0-4 over his previous six starts, has recorded double-digit victories for all three years of his major league career.
Blake Beavan (3-5) allowed four runs on seven hits over five innings to take the loss. The right-hander is 0-3 over his last five starts.
The Mariners loaded the bases with one out in the second. Rodriguez flied out and Ichiro Suzuki grounded out to keep it a scoreless game.
Oakland took the lead in the home second and never looked back. Brandon Allen doubled to right, moved to third on Sweeney's groundout and scored on Kurt Suzuki's base hit to center.
The A's tacked on another run in the third for a 2-0 margin. Hideki Matsui led off with a double to center, his first of three on the day, advanced to third on Josh Willingham's single and crossed the plate on DeJesus' sacrifice fly.
"He swung the bat well and it seems like he is always contributing somewhere," A's manager Bob Melvin said of Matsui's performance
Suzuki put Seattle on the board with an RBI single in the fifth, but Oakland responded with two runs in the home half. Matsui doubled and scored on DeJesus' two-out single. Allen followed with an RBI double for a 4-1 lead.
Ackley's two-run homer off Brian Fuentes in the seventh cut the gap to 4-3.
The A's fought back again with four runs in the home half of the frame. Cliff Pennington walked and Matsui doubled to start things. Willingham hit a sac fly before DeJesus was intentionally walked. Sweeney laced a two-run triple down the left-field line past a diving Trayvon Robinson. Sweeney then scored on Josh Lueke's wild pitch to make it 8-3.
Rodriguez hit a two-run single off Grant Balfour in the eighth, but Seattle's second injury of the game followed. After Suzuki singled to put men on first and second with two outs, Gutierrez hurt his left side while swinging at a 1-1 pitch. Adam Kennedy took over the at-bat and struck out swinging.
Andrew Bailey worked around a one-out double in the ninth for his 19th save of the season.
The Mariners lead the season series with the A's, 9-7...Wells left the game in the second inning after getting hit by a pitch on his left elbow. He was replaced in the field by Robinson...The A's were without outfielder Coco Crisp (shin)...Mariners third baseman Chone Figgins was activated from the 15-day disabled list.