Jeff Karstens gave up a solo homer to Starlin Castro on a hanging breaking pitch in the first, but the Pirates scored two in the third when Starling Marte hit a fastball for the second home run of his career and Andrew McCutchen came home later in the inning on a balk.
Karstens got through five innings without any further problems, and the Pirates took a 2-1 lead into the eighth, at which point the Pirates went nuts. They got four straight hits off Shawn Camp, with Josh Harrison and McCutchen coming home on Garrett Jones' single. Then Michael McKenry smashed a no-doubt three-run homer to left-center for his 10th (!!!) homer of the season.
Pedro Alvarez and Clint Barmes followed with singles of their own, meaning that the Pirates got hits in seven straight plate appearances off Camp. But then the Cubs brought in rookie Alberto Cabrera, and Cabrera got Alex Presley to fly out and Marte and Harrison to swing at about a million sliders out of the zone, and the inning was finally over. (Not to find fault with such a great inning, but Marte's at-bat was horrible -- Cabrera threw three straight sliders to the exact same location, and Marte didn't adjust at all in swinging and missing on all three of them.)
The Pirates got one last run in the top of the ninth on Jones' RBI double.
Joel Hanrahan came on to pitch the bottom of the inning because he hadn't pitched in several days, and he was terrible, giving up the cycle of a double, triple, homer and single before recording an out. (It didn't help him that Travis Snider slipped on his way to field Jeff Baker's triple.) Hanrahan struck out three of the next four batters to end it, however.