ST. LOUIS (AP) -- Joe Kelly pitched six effective innings, Matt Holliday broke out of a slump with two doubles and the St. Louis Cardinals beat the Atlanta Braves 6-2 on Thursday night.
David Freese drove in two runs as St. Louis won for the fifth time in six games.
The NL East-leading Braves played without Jason Heyward, who is out with a broken right jaw after he was beaned during Wednesday's 4-1 win at the New York Mets. The outfielder had surgery on Thursday in Atlanta and could miss the rest of the regular season.
Justin Upton hit his 24th homer, but the Braves lost for the second time in three games at the start of a six-game trip. Atlanta had won eight of its last nine regular-season games against St. Louis.
Kelly (5-3) allowed two runs and seven hits while improving to 5-0 with a 1.79 ERA in his last seven starts. St. Louis improved to 7-1 in Kelly's eight starts since he rejoined the rotation on July 6.
Holliday went 2 for 3 and drove in a run, matching the amount of hits he had during a 2-for-24 slide over his previous six games. He doubled and scored in the fourth, then capped St. Louis' three-run fourth with an RBI double that made it 4-2.
Freese had a run-scoring groundout in the fourth and an RBI single in the seventh.
Paul Maholm (9-10) came off the disabled list and allowed five runs, four earned, and five hits in 5 1-3 innings for Atlanta. It was the first game for the left-hander since he left a July 20 start at the Chicago White Sox with a bruised left wrist.
Maholm helped himself with a leadoff single in the fifth. Upton then hit a one-out drive to center for his eighth homer this month, giving Atlanta a 2-1 lead.
St. Louis went back in front in the bottom half on consecutive run-scoring doubles by Matt Carpenter, Carlos Beltran and Holliday. Pete Kozma sparked the big inning with a one-out walk.
NOTES: The Cardinals began a string of 17 consecutive games against opponents with winning records. ... St. Louis RHP Jake Westbrook is questionable for his next start Monday with back stiffness. ... INF Elliot Johnson made his first start for the Braves and broke out of an 0-for-31 slump with a second-inning single. He was claimed off waivers from Kansas City on Wednesday. ... Atlanta's Kris Medlen (10-11, 3.71 ERA) will face Adam Wainwright (14-7, 2.66 ERA) in the second game of the four-game set on Friday. ... Holliday grounded into his major league-leading 28th double play in the seventh.