Jorge Campillo (7-4) gave up five runs and eight hits over 6 1-3 innings to win his fourth consecutive decision. Campillo struck out five and didn't walk a batter for the second straight start.
Jeff Bennett pitched the last two innings, surrendering Tony Clark's RBI single in the ninth, for his third save in as many chances.
Alex Romero went 3-for-4 with a double and a triple and Stephen Drew homered for the Diamondbacks, who lost their third straight.
The Braves scored two runs each in the second and third innings and four runs in the fifth off Arizona starter Doug Davis (4-7) and reliever Billy Buckner, opening an 8-1 lead before the Diamondbacks rallied.
Romero tripled and scored on Chris Snyder's sacrifice fly in the fifth, Conor Jackson hit an RBI double and scored on Mark Reynolds' sacrifice fly in the sixth, and Snyder drove in Romero with a double in the seventh to make it 8-5.
But Yunel Escobar led off the ninth with an infield single and Jones followed with his 19th home run onto the porch overhanging the center-field fence to give the Braves a 10-5 lead.
Bennett also chipped in, driving home Omar Infante with a ground-rule double.
Drew gave the Diamondbacks a 1-0 lead when he hit Campillo's third pitch into the right-field stands for his first career leadoff home run.
The Braves' offense took over from there. Prado drove in two runs in the second with a ground-rule double, and Infante hit a two-run double in the fourth for a 4-1 lead.