Cincinnati starter Eric Milton (8-7) gave up two runs -- one earned -- on five hits in six innings for the Reds, who won for the first time in the last three games.
Rich Aurilia had a home run and three RBI for Cincinnati, which pulled to within 3 1/2 games of St. Louis for first place in the NL Central.
Jason Marquis (12-10) started for the Cardinals and lasted only 2 2/3 innings allowing four runs on nine hits.
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'
Jordana Brewster on Paul Walker: 'He was an enormous presence in my life'