The D-Backs took a 5-4 lead on a solo homer from Miguel Montero in the top of the frame, but an erratic David Hernandez (4-5) was unable to hold onto it in the bottom half.

He plunked consecutive batters and then allowed two straight hits, with Heyward bringing in two runs thanks to a throwing error from Jason Kubel on his double into left, which gave the Braves a 6-5 edge.

Atlanta then broke it open against Arizona reliever Tony Sipp on a two-run single from McCann, an RBI double from Dan Uggla and a sacrifice fly from B.J. Upton. Chris Johnson's RBI single off J.J. Putz then capped the outburst.

"That's how baseball games are and that's how baseball seasons are," said Johnson. "It's just the teams that try to minimize it and keep it rolling. Just try to stay confident and stay positive and just keep grinding."

Jordan Walden (3-1) had his 13-inning scoreless streak snapped on Montero's homer, but picked up the win thanks to the Braves' big eighth inning.

Justin Upton had three hits and Freddie Freeman hit a two-run homer, but Tim Hudson saw his career-long winless streak extended to 11 starts. He gave up four runs on five hits and three walks in 5 2/3 frames.

Ian Kennedy also gave up four runs on five hits in his return from a 10-game suspension. He only lasted 4 1/3 frames for Arizona, which has lost five of its last six contests.

"Seven walks, three hit batsmen, made an error," said Arizona manager Kirk Gibson on his team's mistakes. "Its disappointing."

The Braves squandered scoring opportunities in each of their first two turns at the plate, but Freeman got them on the board in the third with a two-run homer to dead center.

Hudson struggled through the fourth after giving up his first hit -- a leadoff infield single to Paul Goldschmidt. A wild pitch preceded a run-scoring double to Montero and a base hit from Kubel into right tied the contest at 2-2.

Kennedy got through the bottom of the frame on seven pitches, but didn't make it out of the fifth after walking three of the four batters he faced. Will Harris took over and promptly walked Dan Uggla to force in a run.

Atlanta left the bases loaded in the frame, but not before B.J. Upton pushed its lead to 4-2 with a sacrifice fly.

A.J. Pollock drew the visitors even in the sixth with a two-run shot to center field, and Montero gave them a briefly put them in front with a homer in the eighth.

Game Notes

Kennedy was serving a suspension for his role in a brawl with the Los Angeles
Dodgers on June 11 ... Putz was activated from the disabled list prior to the
contest, with Arizona optioning pitcher Zeke Spruill to Triple-A Reno to make
room on the roster ... Hudson is 0-6 during his winless streak ... The
Diamondbacks were 2-for-11 with runners in scoring position and stranded nine.