Frustrated by six innings of 78 mph fastballs, Andrew McCutchen and the Pirates had seen enough.
Pittsburgh outlasted a pitcher whose career has outlasted the life of McCutchen.
McCutchen had three RBIs, Casey McGehee drove in the go-ahead run with an eighth-inning single and the Pirates scored four runs off the Colorado bullpen to beat the Rockies 5-4 on a chilly Tuesday night.
Seven days after becoming the oldest pitcher to win a game in major-league history, 49-year-old Rockies starter Jamie Moyer was in line for another victory after allowing one run over six innings.
"It was three frustrating at-bats," said McCutchen, who went 0 for 3 with an RBI groundout against Moyer. "'Man, three-at bats, I can't believe he got me out.' You know he has nothing to throw by you, but he just nitpicks, he hits his spots and he gets outs."
But the Pirates got the game to the Colorado bullpen, which promptly blew two leads against a team that had scored only 30 runs in 15 games coming in - by far the fewest in the majors.
Pittsburgh's two seventh-inning runs turned a 2-1 deficit into a 3-2 lead. McCutuchen's double off the center field wall was the third consecutive hit to begin the inning off lefty Rex Brothers , who on average throws 20 mph faster than Moyer.
"I couldn't wait to see 95. Honestly," McCutchen said. "I mean, you don't see 70-79 every day. ... For (Moyer) to do what he did, he did a pretty good job. But as soon as another arm came in there throwing pretty hard, I was like, 'All right, here we go."'
McGehee's two-out single to right off Matt Belisle (1-1) scored pinch-runner Nate McLouth . Clint Barmes had led off the eighth with his second home run to tie the game at 4-4.
Carlos Gonzalez hit his second two-run homer of the night in the top of the eighth to give Colorado the short-lived lead.
Gonzalez had three of the Rockies' six hits. Barmes, a former Colorado player, had three hits for the Pirates, who have won four of six.
Joel Hanrahan pitched a perfect ninth for his third save.
The ageless Moyer allowed a home run to a skinny rookie named Barry Bonds on Aug. 11, 1986, in his first career start against Pittsburgh.
McCutchen, who was born 60 days later, drove in Alex Presley with a groundout in the first. Presley had extended his hitting streak to eight games by leading off the inning with a double.
Moyer didn't throw a pitch that registered over 79 mph all game, but that was the only run he would allow. He gave up six hits and three walks with three strikeouts. Two of those strikeouts came against opposing starter Kevin Correia with runners in scoring position and two outs.
"I didn't feel like I had real good fastball command early in the game," Moyer said. "After the second inning, I was able to find it. I walked a few too many guys but I was able to eventually get the ball around the plate."
McCutchen drove in Presley and Jose Tabata in the seventh. It was only the second Pittsburgh hit of the season that produced more than one run.
Gonzalez entered the season with 60 homers over the previous two years but had none in 50 at-bats this season before his shot to left with Dexter Fowler aboard in the first. His homer to center in the eighth off Tony Watson (1-0) with Marco Scutaro on gave Colorado the lead back.
It was Gonzalez's fifth career multihomer game and first since June 27 of last season at Wrigley Field.
Gonzalez had missed three games last week because of strep throat.
"It felt good to hit a couple of balls hard again because it's been a tough couple of weeks," Gonzalez said. "I missed three games and that messed with my timing, and I had a bad fever for four days and that took away a lot of my strength. I just feel like I'm finally back to normal."
Pitching three days after being scratched from a scheduled start because of discomfort in his left side, Correia bounced back after Gonzalez's first-inning two-run homer. He retired 17 of the final 18 batters he faced in his six innings of work. He had four strikeouts and no walks, allowing four hits.