Cardinals ace Adam Wainwright struck out 11 and allowed one run through seven innings, and Jon Jay drove in four runs with a homer and double to lead St. Louis to a 6-1 win over the Cubs on Sunday at Wrigley Field.
Matt Carpenter singled in two runs in the third to help back Wainwright (14-7), who was in command and allowed just five hits and one walk after going 0-2 in his previous four starts.
Junior Lake drove in the Cubs' only run with a double in the sixth.
Wainwright hadn't won since July 21 at home against San Diego, and had allowed 14 runs in 28 innings during the span.
On Sunday, he faced only one batter over the minimum through the first five innings and only 26 through seven innings.
Kevin Siegrist and Trevor Rosenthal combined to pitch scoreless eighth and ninth innings.
Chicago starter Edwin Jackson (7-13) allowed three runs, but only one earned, through six innings. He walked four and struck out three.
Jackson has been stronger in the second half after an 1-8 start. He got little support on Sunday, and his defense didn't help when Lake dropped a fly ball in center field for an error in the Cardinals' three-run second inning.
The Cubs have scored just 12 runs in their past eight games at Wrigley Field and have been shut out in five of those contests.
St. Louis catcher Yadier Molina had two doubles in his third game back after 2 weeks on the disabled list.
Starlin Castro was back in the Cubs lineup a day after being pulled for making a mistake the day before, and had an infield single.
White Sox 5, Twins 2: Alexei Ramirez homered and had three RBIs, Hector Santiago won for the first time since June 21, and the White Sox beat the Twins in Minneapolis.
Ramirez finished a triple shy of the cycle. He homered to lead off the fifth inning, giving Chicago a 4-2 lead and helping his team win its first road series in more than a month.
Jeff Keppinger's single scored Avisail Garcia to make it 5-2 later in the fifth.
Brian Dozier had two hits and an RBI for Minnesota, which went 2 for 18 with runners in scoring position and lost for the fifth time in six games.
Santiago (4-7) wriggled out of a bases-loaded jam in the fifth. Addison Reed earned his 31st save in 36 chances.
Twins starter Samuel Deduno (7-7) didn't walk a batter for the second time this season, but he hit three batters with pitches and balked once.