Matt Carpenter, Carlos Beltran and Matt Holliday stroked consecutive run-scoring doubles during the decisive fifth inning to help the St. Louis Cardinals down the Atlanta Braves, 6-2, Thursday in the opener of a four-game series at Busch Stadium.
David Freese finished with two RBI, while the first three hitters in St. Louis' lineup -- Carpenter, Beltran and Holliday -- combined for six hits and four runs scored for the Cardinals, who have won five of their last six games.
The Cardinals remained in second place in the NL Central, a game behind the Pirates, who won in San Francisco Thursday night.
St. Louis starter Joe Kelly (5-3) held the Braves to two runs on seven hits and two walks over six frames to notch his fifth victory in his last seven starts. He's unbeaten since a June 5 loss to Arizona.
"I didn't have any of my good stuff today," Kelly admitted. "I just went out there and just tried to battle the whole time. Nothing was easy."
Paul Maholm (9-10) was activated off the 15-day disabled list prior to the game and made his first start in just over a month due to a bruised left wrist. The Atlanta southpaw allowed five runs -- four earned -- on five hits and three walks over 5 1/3 innings to absorb the loss.
"For his first time starting in over a month, I think he did a nice job," Braves manager Fredi Gonzalez said of Maholm. "I thought he kept us in the ball game and gave us an opportunity to win."
Justin Upton, who had missed the last two games with an upper back strain, stroked a two-run homer to account for Atlanta's offense, as the NL East leaders lost for the third time in their last five games.
Upton's 24th blast of the season staked Atlanta to a 2-1 lead in the fifth, but the Cardinals responded with three runs in the home half to seize control.
Pete Kozma worked a one-out walk and moved to second on Kelly's sacrifice bunt before scoring on Carpenter's double into the gap in right-center field.
Beltran and Holliday then followed with back-to-back two-baggers into the left-field corner to plate two more runs for a 4-2 cushion.
St. Louis chased Maholm in the sixth, as Shane Robinson smacked a one-out single and Rob Johnson reached on a fielder's choice and Andrelton Simmons' throwing error left runners on the corners to end Maholm's outing.
Luis Ayala entered and uncorked a wild pitch, allowing Robinson to race home for a 5-2 lead.
The Cardinals added another run in the seventh when Freese stepped to the plate with runners on the corners and two outs and stroked a single back up the middle to score Carpenter for a 6-2 advantage.
Early on, Maholm held the Cardinals hitless over the first three frames, but Holliday led off the fourth with a line-drive double down the left-field line and moved to third on a flyout before scoring on Freese's groundout.
Atlanta had won eight of the past nine meetings with St. Louis ... Atlanta outfielder Jason Heyward underwent surgery Thursday to repair his fractured jaw and was placed on the 15-day DL ... Prior to the game, the Braves claimed infielder Elliot Johnson off waivers from the Kansas City Royals and optioned infielder Phil Gosselin to Triple-A Gwinnett. Johnson went 2-for-4 in his Atlanta debut ... Atlanta pitcher Brandon Beachy was scratched from his scheduled start on Sunday due to elbow fatigue. Left-hander Mike Minor will start in Beachy's place ... St. Louis went 4-for-12 with runners in scoring position and left seven on base.