Jason Kendall, Mark Kotsay, Milton Bradley and Frank Thomas all drove in one run; Thomas had three hits; and one run scored on a wild pitch by Seattle reliever Mark Lowe, as the Athletics (59-51) won for the sixth time in their last seven games.
Haren (9-9) walked two batters and struck out seven. Houston Street earned his 24th save.
Adrian Beltre hit a two-run homer for the Mariners (53-56), who had only four hits.
Seattle has lost three of its last four games and is last in the American League West.
Starting and losing pitcher Joel Pineiro (7-9) surrendered four runs and eight hits in 2 2/3 innings.