Chipper Jones hit his first home run since May 4 and the Atlanta Braves took the second of a three-game set against the Arizona Diamondbacks, 6-4, on Wednesday.

In addition to Jones, the red-hot Jason Heyward hit his sixth home run this month for the Braves, who have won five of their last seven games.

Tommy Hanson (9-4) won his fourth straight decision. After pitching six scoreless innings, the right-hander allowed three runs in the seventh and was pulled after 6 1/3. He gave up seven hits and walked one while striking out five.

"I was trying to be aggressive, get ahead of those guys," Hanson said. "They've been hot, so I didn't want to fall behind too many times, and it got me through the sixth."

Trevor Cahill (6-6), who had won his last four starts, gave up six runs -- four earned -- on four hits and four walks in five-plus innings.

"You look down, and I think [Braves first baseman Freddie] Freeman is hitting seventh and I feel like he's gotten three hits a game against us," Cahill said. "So it's tough. They're putting together good at-bats and they're hitting the ball hard. Even when they don't and you make a good pitch, it seems like things are kind of falling their way."

Ryan Roberts and Chris Young homered in a losing effort for the Diamondbacks, who have dropped two straight after winning their previous four.

Stephen Drew returned for Arizona and hit second after spending more than 11 months on the disabled list with an ankle injury. He went 1-for-4.

"It's still a work in progress. It's just something that I'm learning to cope with and it's come along well," Drew said. "I was excited to get back. It was really good tonight."

Heyward ended Cahill's 20 1/3-inning scoreless streak with a long solo homer to right-center in the first inning.

The Braves tacked on three runs in the fifth with some help from an error.

Jones walked and Freeman singled to start the inning. After Andrelton Simmons hit a dribbler back to the mound, Cahill attempted to throw Freeman out at second base, but his throw was low and went into center field, scoring Jones and moving Freeman and Simmons to second and third. The Braves scored two more on sacrifice flies from Michael Bourn and Martin Prado.

After Cahill walked Uggla to start the sixth, Jones ended the starter's night with a two-run shot to dead center field, giving the Braves a 6-0 lead.

Hanson cruised into the seventh before allowing back-to-back singles to Miguel Montero and Aaron Hill. Roberts then blasted a three-run bomb to left-center field.

Jonny Venters replaced Hanson after the homer, but let Arizona creep a run closer with Young's solo blast, his first career pinch-hit home run. It was the fifth home run Venters has allowed this year in 29 innings, after giving up only three in his first 171 innings in the majors in 2010 and '11.

The Diamondbacks put two men on with one out in the eighth, but Eric O'Flaherty induced an inning-ending double play off the bat of Miguel Montero to end the threat.

Craig Kimbrel struck out the side in order in the ninth to pick up his 22nd save and ensure a series victory for the Braves.

Game Notes

Heyward extended his hitting streak to a career-best 12 games. He is hitting .455 (20-for-44) with four home runs and seven RBI during the streak...Hanson allowed just his fourth home run to a right-handed hitter with Roberts' blast...Hanson is 12-2 in his career against teams from the National League West...Arizona has homered in a season-high eight straight games...Hill, who went 2-for-4 with a double and a run scored, extended his hitting streak to eight games...The Diamondbacks committed an error for the first time in seven games...Cahill is 0-2 in his career against the Braves and has allowed 11 earned runs in 10 2/3 innings...The Diamondbacks went 1-for-9 with runners in scoring position.