PHOENIX -- Eric Chavez had two hits and drove in three runs and Ian Kennedy won for the first time since Opening Day when Arizona beat Atlanta 5-3 in the rubber game of their series Wednesday afternoon.
Chavez had a two-out, two-run double in the middle of a four-run fourth inning against the Braves' Tim Hudson (4-3), who suffered his first loss in 10 career starts against the Diamondbacks. Chavez also singled in a run in the first, and his 16 RBIs are second on the team.
Didi Gregorius singled in the first run in the fifth inning and Cody Ross singled in the final run as the D-backs (23-18) overcame a 3-1 deficit built on three Freddie Freeman RBIs.
Freeman walked with the bases loaded with two outs in the third and doubled in two runs with two outs in the fifth off Kennedy (2-3). He also doubled in the ninth.
Kennedy gave up five hits and three walks in five innings and was the beneficiary of the big fifth inning, winning his first game since he went seven innings in a 6-2 victory over St. Louis on April 1. He struck out seven.
Heath Bell pitched around a one-out double by Freeman in the ninth for his sixth save, his fifth in the last nine days.
Hudson was 7-0 with a 1.33 ERA in his previous nine starts against the D-backs, and he had allowed only two runs in his last 38 innings, a streak dating to 2006 when he pitched for Atlanta.
Paul Goldschmidt had his first career three-double game, scoring in the first inning. He has 11 doubles and 10 home runs, the first National League player to reach double-figures in both categories. Baltimore's Chris Davis and the New York Yankees' Robinson Cano have done it in the American League.
Jordan Schafer and Ramiro Pena had two hits apiece for Atlanta (22-18), which lost five of the final six games on the Western swing that included a four-game series in San Francisco last weekend.
Jason Kubel walked with one out in the Arizona fifth and took second on an infield single by Gerardo Parra, a ball on which shortstop Andrelton Simmons made a diving stop but could not make a throw.
Gregorius singled to center to make it 3-2, and after Hudson stuck out Goldschmidt, Chavez doubled to deep left-center for a 4-3 lead. Ross single to right to make it 5-3.
NOTES: Atlanta CF B.J. Upton was 0-for-5 in his return to the lineup after missing Tuesday's game with shoulder stiffness. He was removed in the seventh inning Monday after being struck in the left shoulder by a Wade Miley pitch. He is hitting .145 this season. ... Chavez has hit safely in six of his last seven games, going 9-for-19. ... Atlanta 3B Juan Francisco struck out four times, the first two on neck-level fastballs from Kennedy, and has 37 strikeouts in 89 at-bats this season. He is hitting .258.