Wainwright (9-3) gave up two runs and seven hits as the Cardinals improved the major leagues' best record to 40-21.
Slumping Pete Kozma drove in three runs, David Freese and Jon Jay knocked in two apiece, and four Cardinals extended long hitting streaks against a pitching staff in a downturn. Mike Leake (5-3) lasted only five innings for the Reds, who have given up 26 runs while losing their last three games.
The NL Central rivalry has fallen into a pattern lately - the second-place Reds can't score many runs. They've scored two or fewer in their last six games against the Cardinals, the first time that's happened since 1974, the year before the Big Red Machine won its first World Series.
St. Louis has won the last four series between the teams and is 5-2 against Cincinnati this season.
A day after the Cardinals hit five homers for a 12-8 win over Arizona, they put together five singles in the fourth inning for all the runs they'd really need.
The Cardinals came into the game with four players on noteworthy hitting streaks. Three of them extended their streaks during the three-run rally.
Carlos Beltran led off with a single that gave him an eight-game streak. Allen Craig pushed his run to 11 games with another hit, completing a 12-pitch at-bat against Leake. David Freese extended the longest active streak in the majors with an RBI single, giving him a career-best 17-game streak. Jon Jay and Kozma - in a 3-for-33 rut - followed with singles for a 3-0 lead.
That was plenty for Wainwright, who had only one tough at-bat in the first five innings. Shin-soo Choo drew a base on balls on his 12th pitch from Wainwright, who has walked only seven batters all season.
Jay Bruce's RBI single ended Wainwright's shutout in the sixth.
The only long hitting streak still in play for St. Louis got extended during a four-run sixth inning off Logan Ondrusek. Jay doubled home another run, Kozma doubled in two more, and Matt Carpenter's RBI single made it 7-0 and extended his streak to a career-best 16 games.
Yadier Molina doubled and singled, raising the NL's top batting average a point to .352.
NOTES: St. Louis is 21-9 on the road, best in the majors. ... The Reds optioned RH Pedro Villarreal back to Triple-A Louisville, opening the way for LH Tony Cingrani to make a start next week for the injured Johnny Cueto. Villarreal struggled in his emergency start on Wednesday, a 12-4 loss to Colorado. ... Switch-hitting INF Henry Rodriguez was called up. ... 2B Brandon Phillips was back in the lineup after missing four games with a bruised left forearm. ... LH Tyler Lyons (2-1) makes his third start for the Cardinals on Saturday against Mat Latos (5-0), who has won his last nine decisions. It's the longest winning streak by a Reds pitcher since reliever Scott Sullivan won 10 straight decisions from 2001-02.
Link to box score: St. Louis 9 at Cincinnati 2
Link to game discussion at The Cardinal Nation message board