Barton, who lacked only a home run to hit for the cycle, paced the A's 15-hit attack. The win snapped a five-game Oakland losing streak.
A's starter Gio Gonzalez (4-3) hurled seven solid innings to pick up the victory, giving up three runs on four hits while fanning four.
The M's lost for the fifth time in six games. Jose Lopez collected three RBI in Seattle's latest loss.
Mariners starter Ryan Rowland-Smith (0-4) was pounded for seven runs on 10 hits in just 2 2/3 innings.