Everth Cabrera and Logan Forsythe each added three hits.
Eric Stults (6-2) allowed three runs on five hits over 5 1/3 innings, striking out five en route to the victory.
Jaime Garcia (4-7) lasted only three innings for St. Louis, surrendering four runs on seven hits.
Pete Kozma went 3-for-4 with a two-run triple for the Cards, whose lead over the idle Los Angeles Dodgers for a National League wild card spot shrank to one game.
Exploding whale video goes viral on Internet
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'