St. Louis' Willie McGee had two triples, a single and two RBI and teammate Tom Herr had a single, double, sacrifice fly and two RBI.
Herr, the leading hitter in the majors, raised his average to .385. His double started a three-run eighth inning that helped the Cardinals to a 21-20 record, the first time they've been over .500 this season.
"He's always been a good ballplayer," his manager, Whitey Herzog, said, "but I'm the only one who ever knew it."
Danny Cox (5-1) held the Reds to six hits in his second complete game of the season.
Dave Parker of the Reds hit his eighth home run of the year in the seventh to extend his hitting streak to 17 games.
Cincinnati's John Stuper (5-3), making his first start against his former teammates, gave up three runs in six innings.
"I've been thinking of pitching against this team since the day I was traded, I wanted to beat them so bad," he said. "I was more hyped up for this game than I was for the sixth game of the World Series."
He beat the Milwaukee Brewers, 13-1, on a four-hitter in that game during the 1982 World Series.