ST. LOUIS — Cardinals rookie Stephen Piscotty continues to show a penchant for making quick adjustments.
After going hitless in his first three at-bats, Piscotty lined a two-run double off the centerfield wall to cap a three-run rally in the eighth inning that sent St. Louis over the Chicago Cubs 4-3 Wednesday.
Matt Carpenter tripled and scored twice as the Cardinals' ended their three-game losing streak. The NL Central leaders avoided their first sweep at home this season and their first against the Cubs since September 2010.
"It's definitely good to get that one," Piscotty said. "You don't want to get swept by the Cubs. We're fine. There's no panic. We did a good job of fighting back."
Cardinals manager Mike Matheny said Piscotty is a good self-evaluator.
"This is what he did: 'He got me last time, this is what I probably need to do.' And not many guys can make those adjustments as far as approach," Matheny said. "He's able to think ahead and then make those physical adjustments as well."
Cubs lefty Jon Lester exited after seven dominant innings. He gave up two hits, retired 20 of his final 21 hitters and left with a 3-1 lead.
"I felt good, cutter was better today," Lester said. "I got away with a couple of pitches because of what we established early."
Jonathan Broxton (2-4) got the win and Trevor Rosenthal picked up his 43rd save. Clayton Richard (3-1) took the loss.
Cardinals starter Carlos Martinez needed 99 pitches to get through five innings. The Cubs stranded at least one runner in each of his innings, and Martinez was able to limit the damage with eight strikeouts.
"All in all, I think he did a nice job of keeping it together all the way around," Matheny said. "His mind was right. He kept coming out and grinding and that's a great sign of what could come."
The Cardinals' bullpen retired 12 of the 13 batters they faced.
"Carlos gave us five," Broxton said. "He struggled early, but once the bullpen opened up we just tried to hold them there and give our offense a chance."
Chris Coghlan took advantage of Randal Grichuk's compromised throwing arm to score the Cubs' first run on Anthony Rizzo's double.
Grichuk, starting for the first time since straining his elbow Aug. 16, had to flip the ball to right fielder Jason Heyward, who threw it in allowing Coghlan to score from first.
Rizzo appeared to be caught in a run-down following his double, but Martinez failed to cover third, allowing Rizzo to take an extra base. Tommy La Stella followed with a two-out double to give the Cubs an extra run.
Lester got his second career hit, both against St. Louis. The Cardinals have given up hits to opposing pitchers in four consecutive games and each have led to runs.
Coghlan made a tough catch on a tailing flyball off the bat of Tommy Pham in the fifth. Coghlan made the grab in foul territory, and his momentum flipped him over the wall and into the crowd.
The Cardinals activated 1B Matt Adams from the 60-day disabled list. Adams was hitting .243 in 144 at-bats with four home runs and 20 RBIs before missing 91 games. Lefty Nick Greenwood was designated for assignment to make room.
Cardinals: Matt Belisle (right elbow inflammation) threw a simulated game, but no definite return date has been set for the right-hander. He has missed 65 games.
Cubs: RHP Jake Arrieta (18-6, 2.03 ERA) takes the mound to kick off a four-game series Thursday at Philadelphia. Arrieta has a 17-inning scoreless streak and was the NL Pitcher of the Month for August.
Cardinals: LHP Jaime Garcia (8-4, 1.89 ERA) starts a 10-game road trip Thursday at Cincinnati. He is 5-0 with a 1.76 ERA since Aug. 1.