After JT Brubaker excelled to win the opener 7-0 and end Pittsburgh's six-game losing streak, Keller was equally impressive.
''Just putting a really big focus on attacking,'' Keller said. ''Letting them kind of get themselves out, and just putting the ball in their court. ... Just kind of attacking the zone and getting after it.''
The Pirates shut out a team in both games of a doubleheader for the first time since Oct. 3, 1976, against the St. Louis Cardinals.
''It was nice to see Mitch come out and attack the zone,'' manager Derek Shelton said. ''Kind of just coupled off what (Brubaker) did in Game 1. But we played well today, it was really nice. ... When the message is very similar, which it is for those two guys, it can lead into it and I thought both of them did a nice job.''
Pittsburgh pitchers combined to hold Colorado to just six total hits. The Rockies have lost five in a row.
''We're just not doing a good enough job right now as a group,'' Colorado right fielder Charlie Blackmon said. ''Individually, we've got some guys swinging the bats pretty good. If you look top to bottom, we've kind of hit a lull with a lot of guys all at the wrong time, all at once here.''
Keller (3-6) pitched two-hit ball for five innings. He struck out six and walked two after losing his previous three starts.
The right-hander didn't allow a runner to reach second until the fifth, closing his outing by forcing Raimel Tapia into an inning-ending groundout with runners on second and third.
After going 1 for 4 with a double in the opener, Adam Frazier hit a leadoff homer in the second on the first pitch from Austin Gomber (3-5). It was Frazier's 10th career leadoff homer, tied with Al Martin for the second most in team history behind Barry Bonds' 20.
''I wasn't as sharp, obviously, as I've been the last couple times out,'' Gomber said. ''Just all-over delivery. Delivery felt a little bit off. My stuff didn't feel as sharp.''
Frazier scored in the third, making it 2-0, when catcher Elias Diaz attempted to catch him stealing third as Bryan Reynolds drew a walk. Diaz, formerly with the Pirates, threw the ball into left field.
Ka'ai Tom later homered and Jacob Stallings hit his first major league triple.
The doubleheader is the fifth for the Rockies this season and fourth in the past 26 games. They were swept in a twin bill Thursday by the Mets in New York.
Brubaker (4-4) allowed four hits in six innings and Bryan Reynolds hit his team-leading sixth home run. The right-hander gave up just two hits through the first five innings and before getting Blackmon and Brendan Rodgers to fly out with the bases loaded to end the sixth.
Rockies starter Jon Gray (4-5) lasted three innings, allowing three runs on four hits.
''We've got to keep teaching and keep coaching,'' Colorado manager Bud Black said. ''Try to coach all these young guys up and encourage them to keep fighting and keep battling, and keep learning.''
STORY ON IR
Rockies SS Trevor Story was placed on the 10-day injured list retroactive to May 28 with right elbow inflammation, stemming from a play in the second game of the doubleheader against the Mets on Thursday. The two-time All-Star shortstop left in the third inning after fielding a groundball from Cameron Maybin and making a spinning throw for the out at first. Black said an MRI has not been scheduled but would likely take place Monday or Tuesday if there is one.
Pirates: Tom (wrist) was reinstated from the injured list and served as the 27th man on the roster for the doubleheader.
Rockies LHP Kyle Freeland (0-0, 2.25 ERA) is expected to close out the three-game set on Sunday against a pitcher yet to be announced by the Pirates. In his lone appearance this season, Freeland allowed one run on four hits in a 3-1 loss to the Mets on Tuesday.
More AP MLB: https://apnews.com/hub/MLB and https://twitter.com/AP-Sports
Copyright 2021 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.