ATLANTA -- Trevor Cahill was too wild with his pitches and too wild with a crucial throw to second base.
That was too much for Cahill and the Arizona Diamondbacks to overcome.
Arizona spotted the Braves six runs but their late comeback fell short as Atlanta used homers by Chipper Jones and Jason Heyward to beat the Diamondbacks 6-4 on Wednesday night.
Ryan Roberts hit a three-run homer and Chris Young also homered in Arizona's four-run seventh.
Cahill, who had been 4-0 in June, gave up six runs - four earned - four hits and four walks in five-plus innings and had a key throwing error that set up two unearned runs in the Braves' three-run fifth.
The four walks were Cahill's highest total since his six walks in his first start of the season at San Diego on April 10.
"I just fell behind," Cahill said. "I just couldn't put them away. I was just trying to be too fine."
The Braves have started a 10-game homestand, their longest of the season, with two wins over the Diamondbacks.
Heyward, hitting second for the second straight night, gave the Braves a 1-0 lead with his first-inning homer. He hit a belt-high pitch from Cahill deep into the seats in center for his 12th homer. It was Heyward's fourth homer during his career-best 12-game hitting streak.
|More on Diamondbacks-Braves|
|More MLB coverage|
Cahill (6-6) then gave up a double to Martin Prado before recording 11 straight outs.
Cahill's throwing error and three walks led to two unearned runs in the Braves' three-run fifth. Jones walked and moved to second on Freddie Freeman's single to right. Cahill fielded Andrelton Simmons' grounder and threw low to second base for an error, allowing Jones to score.
"I was thinking double play," Cahill said. "I just should have taken my time. But I threw it away."
Freeman and Simmons scored on fly balls by Michael Bourn and Prado.
Cahill was pulled after walking Uggla and giving up Jones' homer to center in the sixth. It was Jones' sixth homer of the season and 460th of his career.
"I've finally got my swing right," said Jones, who returned on June 10 after spending two weeks on the disabled list with a left calf contusion. "I'm feeling good. I've got some confidence.
"This game is fun when you're playing well and you feel like you can go out and do some damage."
Tommy Hanson (9-4) gave up three runs and seven hits in 6 1/3 innings.
The Braves led 6-0 before Roberts' three-run homer in the seventh knocked Hanson out of the game. Young added a pinch-hit homer off Jonny Venters later in the inning to cut Atlanta's lead to two runs.
Craig Kimbrel struck out the side in the ninth to earn his NL-leading 22nd save. Arizona manager Kirk Gibson said Kimbrel was "nasty and dominating."
Braves second baseman Dan Uggla helped preserve the two-run lead in the eighth. Arizona had runners on first and second when Uggla went to his left to snag Miguel Montero's grounder off Eric O'Flaherty. Uggla turned and threw to Simmons at second base to start a double play which ended the inning.
"If we don't turn that we still may be playing or we're behind the eight ball and maybe lose," Braves manager Fredi Gonzalez said.
Arizona shortstop Stephen Drew was 1 for 4 as he came off the disabled list to make his first start since July 20, 2011. He missed most of the second half of 2011 and the first 73 games this season while recovering from a fractured right ankle that required surgery.
Drew led off the fourth with a single for the first hit off Hanson. He moved to second on Heyward's fielding error in right and advanced to third on Justin Upton's groundout.
Drew was stranded on third, starting a string of Arizona leaving a runner on third base in three straight innings. Aaron Hill doubled in the fifth and was left on third. Upton doubled with two outs in the sixth and moved to third on Hanson's wild pitch but the inning ended on Jason Kubel's strikeout.
"Really we didn't capitalize on our opportunities early in the game so it didn't work out very well," Gibson said.
Hanson faded quickly in the seventh, giving up consecutive singles to Montero and Hill before Roberts' homer cut the lead to 6-3.
The Diamondbacks placed RHP Daniel Hudson on the 15-day DL after an MRI on his right elbow showed a tear in the ulnar collateral ligament. Gibson said Hudson, who left Tuesday night's game with the injury, could seek a second opinion. ... LHP Patrick Corbin was recalled from Triple-A Reno to pitch in long relief. RHP Jonathan Albaladejo was optioned to Reno. ... RHP Josh Collmenter will take Hudson's spot in the rotation on Sunday at Milwaukee. ... Arizona RHP Trevor Bauer, the No. 3 pick in last year's amateur draft, will be called up to make his debut against the Braves in Thursday night's final game of the series. Bauer will face RHP Jair Jurrjens, who won at Boston on Friday in his return from the minors.