PHOENIX -- Paul Goldschmidt watched his long high fly ball sail down the left field line, knowing it would result in either a long home run or another two-strike at-bat against Colorado Rockies left-hander Jorge De La Rosa.
The ring of ball on foul pole gave him the answer.
"I'll take it," the Arizona Diamondbacks first baseman said. "Luckily we were able to get a few runs and hold on for the win."
Goldschmidt's two-run home run in the fourth inning broke a 1-1 tie and enabled Arizona to extend its winning streak to three games with a 3-2 victory Wednesday at Chase Field.
Goldschmidt got in front of a low-inside breaking ball for his fifth home run of the year, a ball that hit near the top of the foul pole that extends 90 feet, 9 inches off the ground, the D-backs said. He is batting .325 and leads the D-backs in home runs and RBIs (18).
"That's always the risk when you pitch inside. He has been real consistent for us," D-backs manager Kirk Gibson said.
Arizona right-hander Trevor Cahill (1-3) gave up four hits and four walks in five innings. He also hit a batter and threw two wild pitches, but the Rockies' only run off him was unearned. He pitched out of a bases-loaded, one-out situation in the fifth before the bullpen took over.
"I was a little bit all over the place," said Cahill, whose ERA dropped to 3.00. "You never really want to go five and dive, but some days that's the best you can do, and this was one of those days."
De La Rosa (2-2) gave up three runs, two earned, in six innings in a rematch with Arizona. He shut out the D-backs for six innings in the Rockies' 4-3 victory at Coors Field on Saturday.
"Jorge did his job. The story tonight was we just didn't get that big hit," Colorado manager Walt Weiss said. "The thing is, (Cahill) has good stuff. He's got enough stuff to pitch out of trouble. He's got a big sinker, and it is tough to barrel that guy up."
Eric Young Jr. had two hits for Colorado, and he scored on Troy Tulowitzki's double to make it 3-2 in the seventh inning off reliever Josh Collmenter, who went three innings.
J.J. Putz pitched the ninth inning for his fourth save, striking out Carlos Gonzalez with the tying run on second base. In two of his previous three save opportunities, Putz gave up game-tying home runs in the ninth inning.
"That's the best he's thrown all year," Gibson said.
Colorado (14-8) leads the NL West, one game ahead of Arizona (13-9) and San Francisco (13-9). The Rockies won two of three games against the D-backs in Denver last weekend.
Arizona's Gerardo Parra reached base four times, on two singles and two walks, and Wil Nieves added three hits.
The Diamondbacks broke De La Rosa's scoreless-innings streak at 18 with an unearned run in the second. Goldschmidt reached on third baseman Ryan Wheeler's throwing error before Cody Ross and Nieves singled for a 1-0 lead. De La Rosa had not been scored upon since giving up three runs to San Francisco in his second start on April 8.
Colorado tied it with an unearned run off Cahill in the fourth. Michael Cuddyer's routine ground ball down the third base line hit the bag and caromed into left field for a double. After a walk and a wild pitch, Arizona third baseman Martin Prado could not make the exchange on a slow roller for an error as Cuddyer scored.
NOTES: Parra extended his hitting streak to 10 games, tying his career high, when he beat out an infield chopper in the third inning when no one covered first base. ... Colorado placed 1B Todd Helton on the disabled list with left forearm inflammation, the move made retroactive to April 20. Helton, 39, is hitting .268 with three doubles, one home run and 10 RBIs. "We want to give him every opportunity to get healthy because he is so important to our club," Weiss said. ... The Rockies recalled INF Ryan Wheeler from Triple-A Colorado Springs to take Helton's place on the roster. Wheeler, who made his major league debut with Arizona last July 20, was hitting .348 with two homers and 16 RBIs for Colorado Springs. ... D-backs rookie SS Didi Gregorius, who has hit safely in all six games after being recalled April 16, was held out of the starting lineup after playing the previous four games. He is 10-for-25 (.400) with four doubles, two homers and two RBIs since being activated from the disabled list on April 16.