DENVER -- Brad Hawpe was glad to get another chance.
He had left runners in scoring position twice, once with the bases loaded, in four hitless at-bats before coming up in the ninth inning Monday night with the score tied against the Arizona Diamondbacks.
Hawpe delivered, hitting a two-out RBI single to score Jamey Carroll and give the Colorado Rockies a 4-3 win over the Diamondbacks.
"I just wanted to get into a situation like that and it was great to come through," said Hawpe, who also struck out with the tying runner at second base on Sunday in a one-run loss to the Chicago Cubs. "The first few times I came up, I had a good opportunity, they made some good pitches on me, and I didn't come through."
Hawpe was 0-4 with two strikeouts before hitting a 2-1 pitch from Tony Pena (3-2) up the middle.
"In the last at-bat, I'm not thinking about what happened earlier at all," Hawpe said. "Forget the bad, remember the good. That's what I want to do."
Carroll, who had two hits, opened the inning with a single to center. Pena retired Todd Helton and Garrett Atkins before Cory Sullivan singled to left, sending Carroll to third. Hawpe then delivered the game-winning single.
"You had to know that things were going to turn in his favor," Colorado manager Clint Hurdle said. "After yesterday he could have gone in a shell, he could have crumbled and lost a lot of confidence, but he got one more opportunity."
Jeremy Affeldt (3-0) pitched a scoreless ninth to earn the win.
"We've been struggling with our bullpen and it happened against tonight," Arizona manager Bob Melvin said. "We had two guys in this game get nicked for runs."
Eric Byrnes gave Arizona a 3-2 lead in the top of the eighth inning with a three-run homer off the foul pole in left off reliever Jose Mesa. Mesa had replaced starter Jeff Francis, who walked Chris Snyder and allowed an infield single to pinch-hitter Scott Hairston.
After Byrnes' 19th home run of the year, Mesa hit Arizona's Luis Gonzalez with a pitch in the lower back. Both benches and bullpens cleared, but no punches were thrown and no one was ejected.
"I'm old school and I understand (Mesa) was mad after giving up the home run to Byrnes," Gonzalez said. "I'm bothered at where he hit me. Hit me below the waist and I'm OK with it."
Colorado tied the game at 3 in the eighth off Brandon Medders. Clint Barmes doubled off third baseman Chad Tracey's glove and pinch-hitter Yorvit Torrealba followed with an RBI single to left.
Francis scattered five hits and two runs, striking out five and walking one. He has allowed only 12 runs in 56 2/3 innings over his last eight starts since July 1.
Working on eight days' rest, Arizona starter Claudio Vargas was nearly as effective, allowing two runs and six hits in 6 1/3 innings.
Only Byrnes, who had a two-out double to the wall in left in the third, reached second base in the first seven innings.
The Rockies loaded the bases in the third inning on successive one-out singles by Carroll and Helton. With two outs, Vargas hit Holliday on the left wrist before getting Hawpe to fly out to right.
Colorado broke through with a run in the fifth when Helton doubled into the right-field corner after Carroll's one-out single. Atkins scored Carroll with a groundout to short.
Danny Ardoin reached on Chad Tracey's fielding error to start the seventh and was moved to second on a bunt by Francis. Vargas hit Carroll and Helton drove in Ardoin with a double to left.
Luis Vizcaino replaced Vargas and avoided further damage by fanning Atkins and Sullivan.
"It was a well-pitched game," Gonzalez said. "No one could get anything going offensively until Byrnes hit the home run."
SS Craig Counsell (rib) will leave on a rehab assignment Thursday. ... Arizona placed RHP Greg Aquino on the 15-day disabled list with soreness in his right forearm and recalled RHP Jose Valverde from Triple A Tucson. ... Helton got his 400th career double. ... Holliday left the game after the third inning after being hit on the left wrist by Vargas. ... Colorado signed 3B Vinny Castilla to a minor league