PHOENIX — The Arizona Diamondbacks are down to one more series left to possibly play the role of spoiler.
The Giants narrowed their gap in the division, pulling to two games back of the Los Angeles Dodgers, who lost at Colorado 16-2. The contenders each have 10 games left.
After a seven-game road trip to Colorado and Minnesota, the Diamondbacks return to Phoenix for their final three games of the 2014 season, taking on the playoff-contending St. Louis Cardinals.
Duffy's one-out hit came on a full count with the bases loaded against closer Addison Reed (1-6). Pablo Sandoval walked with one out, Brandon Crawford singled and pinch-hitter Brandon Belt walked, setting up Duffy. Crawford had four hits.
"This was his fifth day in six either in the game or heating up. He just didn't have it," Arizona manager Kirk Gibson said.
Crawford hit an RBI double in the second for a 1-0 lead.
Bumgarner labored through six innings allowing at least two baserunners in the first three. Trying for his 19th win, he gave up seven hits and struck out six.
"I was having to battle and try to make pitches and keep us in the game," Bumgarner said. "Fortunately, I was able to do it."
The Giants took the lead in the fifth thanks to an infield hit, a walk, a wild pitch and a pair of sacrifices that produced one run.
Bumgarner gave up the tying run in the bottom of the fifth, when A.J. Pollock ran home on a thrown third strike that bounced to Giants catcher Andrew Susac. Susac threw out Mark Trumbo at first base, but Pollock hustled to the plate on the throw and beat Buster Posey's throw back to Susac.
"Two bad throws, and we stole a run," Gibson said.
Chafin allowed two runs on three hits with four walks and two strikeouts in six innings.
"I have to work on my command a little bit," Chafin said. "I have to cut down on those walks. It's all about fine-tuning those mechanics."
The Giants admitted to looking at the out-of-town scoreboard at Chase Field to see how the Dodgers were getting routed by the Rockies over the course of the afternoon.
"The scoreboard here is right in front of you," Giants manager Bruce Bochy said. "Now we've got three big games in San Diego and that's where our focus is going to be."
Giants: OF Angel Pagan was scheduled for an MRI on Wednesday for his back injury, and missed his third straight game. ... OF Michael Morse is still out with a strained oblique. ... Belt played for the first time since being activated from a concussion on Monday. He will remain in Arizona on Thursday to get at-bats in the instructional league before rejoining the team.
Diamondbacks: 3B Jake Lamb (quad) remains limited, but is expected to return to the lineup when the team plays at Colorado beginning Thursday. Lamb came on as a pinch-hitter on Tuesday and struck out. ... Trumbo struck out four times in the game. Gibson said he Trumbo was dealing with a stiff back going into the game.
Giants: RHP Tim Hudson (9-11) goes for the Giants on Friday at San Diego after the club gets Thursday off. He's coming off the worst start of his career, in which he allowed six runs on eight hits in one inning of a 17-0 loss to the Dodgers last week.
Diamondbacks: LHP Vidal Nuno (0-6) faces the Rockies in the opener of a four-game series Thursday. Nuno has a 2.31 ERA over his last five starts. He allowed one earned run in eight innings against the Rockies on Aug. 30 but took the loss.