SAN DIEGO -- One of Mark Reynolds' shortest home runs of the season might have made the biggest impact.
Reynolds, who has had a number of long homers in his career, hit his 42nd home run on a 3-1 fastball off Bell (5-4) that barely made it into the first row in left field, 378 feet away.
"I was running out of the box," Reynolds said. "In this yard you never know. I was sprinting. I still wasn't sure until I got around second base and saw the outfielders looking at each other."
Reynolds was hitless in three at-bats with two strikeouts before facing Bell.
"I hadn't really been swinging it at all," he said. "He challenged me and I got the better of it."
Reynolds ran his season strikeout total to a major league-leading 196, nine short of breaking the big league record he set last year.
"I threw the previous pitch pretty much in the same place and he swung through it," Bell said. "But he got that one."
Miguel Montero led off the inning with a single and Trent Oeltjen came in to pinch run. Reynolds then connected off Bell, who blew consecutive save chances on Friday and Saturday nights against the Colorado Rockies. Bell is tied for the NL lead with 37 saves.
"Right now, I'm going through a tough time," he said. "It's very unfortunate I've had three outings like this, and if I would've spread them out once a month or something, it wouldn't look as bad."
Dan Haren (14-8) won his first road game since Aug. 3, a span of five starts, allowing two runs on five hits in eight innings.
The right-hander, who struck out four and walked one, has won at least 14 games in five straight seasons.
"I didn't have too many strikeouts, but I got a lot of groundballs, more than I usually get," Haren said. "That's always a good sign. My location was pretty good, I was down in the zone and didn't make too many mistakes."
Juan Gutierrez pitched the ninth for his fifth save in six chances.
Arizona was on the wrong end of a bizarre play in the seventh inning.
With two outs, Brandon Allen reached on an infield single. Eric Byrnes then hit a ball into the left-center field gap. Allen beat the relay throw from shortstop Everth Cabrera to tie the score at 2. But the ball bounced away from catcher Nick Hundley and began rolling toward the Arizona dugout.
Hundley slid near the top step of the dugout and grabbed the ball. Before he landed in the dugout, he dropped the ball out of his glove onto the dirt. Byrnes, who went to third on Cabrera's throwing error, tried to score as Hundley flew into the dugout.
But Hundley jumped back onto the field, picked up the ball and made a one-hop throw that skipped under the glove of pitcher Luis Perdomo and was field by first baseman Adrian Gonzalez, who was running to cover home. The Gold Glover slid toward the plate as he made the catch and tagged out Byrnes.
"It obviously was a weird, weird play," Byrnes said. "Adrian did a nice job of being there and Nick did an unbelievable job of keeping it out of the dugout. It was kind of a funky play.
"It was one of those things that you say 'I've never seen that before.'"
Byrnes also hit a solo homer against Wade LeBlanc in the third off the third-story balcony of the Western Metal Supply building that borders the left-field pole.
The Diamondbacks won their second straight game after having dropped nine of their previous 10.
San Diego lost consecutive games for the first time since Aug. 22-23 against St. Louis.
LeBlanc went six innings, allowing one run on three hits.
Adrian Gonzalez had a sacrifice in the fourth inning, just the second one in his career. ... San Diego RF Will Venable was a late scratch from the lineup with flulike symptoms. ... Boxer Manny Pacquiao threw out the ceremonial first pitch before the game. Pacquiao was in town to promote his Nov. 14 fight against Miguel Cotto for the WBO welterweight title. ... Padres 2B David Eckstein missed his second straight game with a stiff neck.