The Pirates (12-6) broke their only two-game losing streak of the season and avoided being swept by the Rockies (11-9).
Sean Rodriguez hit a two-run homer, Josh Bell was 2-for-5 with three RBIs and Adam Frazier was 3-for-5 with an RBI and two runs scored to lead the way for the Pirates, who managed just two runs and nine hits over the first two games. They entered the three-game series averaging 5.8 runs a game.
Pittsburgh starter Chad Kuhl (2-1) pitched six innings, allowing a run on four hits, with four strikeouts and three walks.
Kyle Crick pitched a scoreless seventh. Enny Romero, making his Pirates debut, pitched the final two innings. He gave up a double to Gerardo Parra and a RBI groundout by Ian Desmond in the eighth for Colorado's second run.
Romero also got his first major league hit, a double in the eighth, and scored Pittsburgh's eighth run on Jordy Mercer's sacrifice fly.
Rockies starter Kyle Freeland (0-3) lasted four-plus innings, giving up five runs and six hits, with two walks and two strikeouts.
Colorado right fielder Carlos Gonzalez left the game in the fifth for unspecified reasons.
After Chris Iannetta launched a 432-foot, two-out solo homer in the first for the Rockies, the Pirates went to work. David Freese drew a two-out walk in the fourth and scored on Rodriguez's shot to left. Elias Diaz singled and scored on Max Moroff's double to the warning track in center to make it 3-1.
Pittsburgh added three more in the fifth.
Frazier led off with a single to end an 0-for-11 skid. Jordy Mercer singled, chasing Freeland. An out later against Scott Oberg, Bell's single brought Frazier home, and David Freese followed with a two-RBI double to make it 6-1.
Frazier added an RBI single in the sixth for a 7-1 Pirates lead, and the Pirates added three more in the eighth, including a two-RBI double by Bell.
--Field Level Media