Pirates 3, Marlins 0: Jeff Karstens tossed seven superb innings and Pedro Alvarez belted a two-run homer as host Pittsburgh completed a three-game sweep with its fifth straight victory.
All-Star Andrew McCutchen went 2-for-4 with an RBI single for the Pirates, who have won 21 of 25 at PNC Park and are a major league-best 32-14 at home.
Karstens (3-2) limited Miami to five singles while walking two and striking out three en route to winning his third consecutive decision. The right-hander, who kept the opposition scoreless for the second time in three starts, has allowed a total of two runs over 22 innings in the three victories.
McCutchen gave Karstens an early lead as he hit a 3-1 slider from Anibal Sanchez up the middle in the first inning to plate Alex Presley. Alvarez provided insurance in the seventh, hammering an 0-1 offering into the seats in right field for his 21st blast of the season.
Jared Hughes pitched a perfect eighth and All-Star Joel Hanrahan completed the shutout and notched his 28th save in 31 opportunities with a 1-2-3 ninth.
Sanchez (5-7) surrendered three runs and seven hits over seven frames, striking out eight without a walk. He also yielded three runs over seven innings in a loss to Pittsburgh at home on May 14.
Jose Reyes led off the contest with a single to extend his hitting streak to 10 games for the Marlins, who lost the final five games of their six-game road trip and have dropped 13 of 17 away from home.
GAME NOTEBOOK: Pittsburgh has recorded four three-game sweeps of the Marlins at PNC Park. ... Miami kept 3B Hanley Ramirez out of the starting lineup for the third straight day due to a swollen and infected right hand. ... Pittsburgh begins a stretch of 13 straight games against division rivals Monday when it opens a three-game series with the Chicago Cubs. The Pirates are 21-13 versus National League Central opponents.