Rosario had a two-run double in a four-run first and then hit a two-run homer while the Rockies were pouring on five more in the second.
Colorado managed 16 hits to break a five-game losing streak.
Francisco Liriano (12-5) endured his worst start of the season, giving up all 10 runs on 12 hits in a mere 2 1/3 innings. He allowed as many runs on Friday as he had in his previous eight starts combined.
The Pirates, who had won five straight, remained four games in front of St. Louis in the race for the National League Central title.
2014: NFL Cheerleaders [PHOTOS]
Arizona Cardinals player formally charged