Bobby Crosby and Jason Kendall each drove in a pair of runs during a six-run third-inning, and Dan Johnson added a three-run homer in the seventh as every A's starter had at least one hit against the Cardinals' struggling staff.
All but Crosby scored at least one run.
Cardinals starter Braden Looper (6-6) set down the first six hitters but then ran into trouble. Eight consecutive A's reached base safely to open the third, with the first six scoring.
Mark Ellis walked and Jack Cust doubled ahead of Kendall's two-run double. Consecutive singles by Travis Buck and Mark Kotsay produced another run and Nick Swisher doubled home the fourth run. After Eric Chavez walked, Crosby singled home two more runs.
Haren (8-2) has not lost since April 7, and has not allowed more than two earned runs in a start since April 13. The right-hander, pitching against his former team for the first time, leads the majors with a 1.64 ERA after allowing three runs _ two earned _ on six hits over seven innings. He walked three and struck out eight.
Looper left the game with an apparent injury after getting Crosby to ground out to third base in the fifth. While there was nothing visibly wrong with Looper, La Russa called for Andy Cavazos, who came in cold.
Looper, who has not missed a start, gave up eight runs _ seven earned _ including Chavez's 12th home run of the year to lead off the fifth before he was replaced.