PHOENIX -- Adam Dunn and the Cincinnati Reds found their offense Sunday.
Dunn homered and matched his career high with five RBI, leading the Reds over Arizona 9-8 and stopping the Diamondbacks' seven-game winning streak.
"I come to the field feeling good one day and terrible the next," Dunn said. "Maybe this will get me jump started and get the team going again."
Scott Hatteberg, Austin Kearns and Edwin Encarnacion also homered for the Reds, who won for the second time on their five-game trip and averted getting swept for the first time this season. The Reds scored nine runs total in the first four games of the trip.
Kearns finished 3-for-4 with the homer and two doubles, and Felipe Lopez was 4-for-5 with a double and an RBI.
"We played about as badly as we could play on this road trip," Dunn said. "Getting two wins is just about a miracle."
Kearns tied the score 5-5 when he led off the sixth with a home run against Orlando Hernandez (2-4), Kearns' first homer in 65 at-bats since April 17.
"When you're going good you're not missing mistakes," Kearns said. "I'm getting some good pitches and hitting them, not fouling them off and missing them."
Cincinnati loaded the bases on a pair of walks and a two-out single by Lopez, then Greg Aquino relieved and Dunn doubled for an 8-5 advantage.
Orlando Hudson hit a two-run triple with two outs in the bottom half of the sixth against Rick White, but Brian Shackelford retired Chad Tracy on a popup.
In the seventh, Damion Easley tried to score from second after a wild throw by Lopez at shortstop on Shawn Green's grounder but was thrown out at the plate by first baseman Hatteberg.
Encarnacion homered off Luis Vizcaino for a 9-7 lead in the ninth. David Weathers, the Reds' sixth pitcher, survived a rough ninth for his ninth save in 10 chances.
Luis Gonzalez and Conor Jackson singled, Easley sacrificed and Jeff DaVanon reached on a run-scoring infield single, a ball up the middle that second baseman Brandon Phillips fielded but had no play on the runners.
Johnny Estrada then lined to Hatteberg, who stepped on first for a game-ending double play.
"It's a big game we've got to get," Reds manager Jerry Narron said. "I'm not going to lie to you. There's a big difference between 1-4 and 2-3."
Dave Williams (2-2) allowed five runs and six hits in five innings.
Green homered for the Diamondbacks, who finished their homestand 6-1.
"It was a really great streak," Green said. "We won seven in a row and battled back in the game today. We're playing good baseball. This team is starting to show some real good signs."
Hernandez gave up a season-high eight runs and allowed a season-high nine hits for the second straight start. He walked four.
Cincinnati took a 4-0 lead in the third on Lopez's RBI double, Dunn's two-run homer and Hatteberg's solo homer.
Arizona went ahead 5-4 in the bottom half, stringing together four straight two-out hits -- including Jackson's two-run double, Easley's RBI double and Green's two-run homer.
"He was so close to getting out of the inning and then they scored five pretty quick," Narron said. "But outside of that one inning, he was able to get guys out."
Arizona RHP Casey Daigle left in the seventh when he was hit in the back of the left knee by Phillips' liner. Post-game X-rays were negative and Daigle is day to day. ... Byrnes was hit by pitches twice, matching a club record. ... Hernandez has pitched through the sixth inning in only two of seven starts. ... SS Craig Counsell sat out Sunday's game with a sore back. Estrada was out of the starting lineup with a sore quadriceps, though he did pinch hit for reliever Brandon Medders in the bottom of the eighth and remained in the game.