Jhonny Peralta stroked a three-run double and Lance Lynn scattered four hits over seven innings as host St. Louis completed a three-game sweep of Cincinnati.
Jon Jay had three hits, scored twice and had one RBI and Peter Bourjos, Matt Carpenter and Matt Holliday also knocked in runs for the Cardinals, who have won four straight games and seven of their last eight.
St. Louis trails Milwaukee by 1 1/2 games in the National League Central while the Reds have lost five straight games to fall 6 1/2 games off the pace for the NL's second wild card.
Lynn (14-8) struck out five and walked two before a 58-minute rain delay ended his night as he won his third straight start. Cincinnati ace Johnny Cueto (15-7) was charged with five runs and seven hits in five-plus innings and had a seven-game winning streak halted.
St. Louis struck in the third inning when Jay singled with one out and Holliday followed with a double to right-center field. Cueto retired the first two batters in the fifth before the Cardinals loaded the bases and Peralta drilled a liner into right-center field to clear them and make it 4-0.
The Cardinals loaded the bases with none out in the fifth before Cueto was pulled and Logan Ondrusek allowed a sacrifice fly to Carpenter before getting out of the jam. Bourjos added a run-scoring double in the eighth and scored on Jay's line single for a 7-0 advantage but Cincinnati tallied three times in the ninth and had the bases loaded before Trevor Rosenthal retired Todd Frazier on a grounder to record his 37th save.
GAME NOTEBOOK: Jay is 18-for-35 during a 12-game hitting streak. … Reds 2B Brandon Phillips singled to left in the seventh for his 1,500th career hit. … Peralta had six RBIs in the series and 10 over the last seven games.