CHICAGO -- Cardinals ace Adam Wainwright was back in charge Sunday.
Matt Carpenter singled in two runs in the third to help back Wainwright (14-7), who allowed just five hits and one walk after going 0-2 in his previous four starts.
"It's as good as he's been all season," Cardinals manager Mike Matheny said. "He came out in the first and established all his pitches, had great life.
"His curveball was as sharp as we've seen it. That made the difference, it set the tone."
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. He also beat the Cubs for the first time since April 13, 2012, a span of six starts.
"I just went out there in attack mode," Wainwright said, "went out there with the right philosophy in understanding of who I was as a pitcher and just made pitches.
"I wanted to let everybody on the field know that I was in charge out there, so to speak. It's a team over there that's given me trouble over the last few years."
One of Wainwright's strikeouts led to Cubs manager Dale Sveum and reliever James Russell being ejected from the game in the bottom of the seventh.
St. Louis was already ahead 6-1 following Jay's three-run homer off Russell in the top of the inning.
Sveum disputed the call with plate umpire Phil Cuzzi from the dugout, then came onto the field to continue the argument following the ejection. Russell was tossed by third base umpire Tom Hallion.
"That's easily the worst checked-swing call I've ever seen. Sveum said. That's why the other umpires are there, to give him help."
Junior Lake drove in the Cubs' run with a double in the sixth.
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.
"In pitching, things are going to happen," Jackson said. "It was one of those things you try to battle down and do damage control.
"It definitely could have been a lot worse. You just try to keep them within striking distance."
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 two 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. Manager Dale Sveum said Castro had atoned for his mistake.
On Saturday, the shortstop dawdled after catching a popup in shallow left field, allowing a run to score and Sveum pulled Castro from the game.
Carpenter's single with two outs and the bases loaded drove in two runs as the Cardinals jumped ahead 3-0 in the second.
With one out, Molina and Jay bounced back-to-back doubles just inside third base to make it 1-0.
Rookie Kolten Wong's deep fly ticked off Lake's glove for an error, putting Wong on second and Jay on third. Following an intentional walk to Daniel Descalso and fly out by Wainwright, Carpenter's hit up the middle drove in Jay and Wong.
The Cubs cut it to 3-1 in the sixth. David DeJesus, who had walked with two outs, scored on Lake's double to the gap.
Jay's three-run homer in the seventh off Russell, the second of four Chicago relievers, put the game away.
Wainwright had a season-high 12 strikeouts on April 13 against Milwaukee. . The 23-year-old Castro, one of the Cubs' most touted young players, has struggled much of this season. He entered Sunday hitting .244 with seven homers and 32 RBIs, and was 0 for 16 in his past five games. But Sveum was willing to give him another chance. "I don't think this kid can get better by not playing today and understanding the adversity that we all go through in a game," Sveum said before the same. ... Descalso, a left-handed batter, started at shortstop for St. Louis on Sunday against Jackson, a right-hander. He replaced right-handed hitting, Pete Kozma who played Saturday. Manager Mike Matheny stopped short of saying the two would platoon the rest of the season. "I am still comfortable with (Kozma's defense), but I think we've all been becoming more comfortable with the innings (Descalso) has been playing as well, and how he's swinging the bat at times. I think you're going to see both of them." Kozma, was hitting .223 entering the game and Descalso was at .254. ... Wong, one of the Cardinals' top prospects, started at second on Sunday and appeared in each game of the series after making his major league debut on Friday.