The homers were his sixth and seventh since being dealt to Atlanta by the Texas Rangers at the July 31 trading deadline.
Winning pitcher John Smoltz (11-6) passed Phil Niekro to become the Braves' all-time strikeout leader with 2,913. In all, Smoltz gave up two earned runs and five hits in eight innings with three walks and 12 strikeouts.
Atlanta’s Yunel Escobar hit a solo homer in the fourth, when Kelly Johnson hit an RBI double.
Four players had two hits for the Braves, who averted a three-game sweep.
Arizona scored when Orland Hudson hit an RBI double in the first, and Chris B. Young swiped home on a double-steal in the third.
Young and Hudson had two hits each for the Diamondbacks, who had a four-game winning streak broken.
The loser was Yusmeiro Petit (2-4).