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.
BOX SCORE: Cardinals 6, Braves 2
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.
Copyright 2013 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.