Nova (3-2) struck out seven and did not walk a batter in the 95-pitch masterpiece. He retired 11 in a row at one point in handing Miami its fourth straight loss.
Nova continued his impressive start to the season, which includes walking just one batter over 27 innings as he lowered his ERA to 1.50 while tossing his second complete game and the eighth of his career.
Dan Strailey (1-2) nearly matched Nova through five innings allowing only one run before running into trouble in the sixth when he allowed a base hit followed by three consecutive walks including Francisco Cervelli with the bases loaded ending his outing.
Brad Ziegler came in and walked Jaso with the bases loaded giving the Pirates a 3-0 lead.
Strailey allowed three runs and four hits in 5 1/3 innings. He struck out five after a 14-strikeout performance in his last start at San Diego.
Jaso's home run in the ninth, his first of the season, pushed the Pittsburgh lead to 4-0.
Polanco doubled down the left-field line to lead off the second inning. Mercer drove in Polanco with a two-out single up the middle for the early lead.
Harrison also made another impressive defensive play in the eighth when he dived to his left on a hard-hit grounder by J.T. Realmuto to start a double play.
Pirates: 3B David Freese (hamstring) was placed on the 10-day DL retroactive to April 25. OF Danny Ortiz's contract was selected from Triple-A Indianapolis in a corresponding move and he made his Major League debut as a defensive replacement in the seventh.
Marlins: RHP Tom Koehler (1-1, 5.14) will take the mound looking for his first win against the Pirates. Koehler is 0-4 with a 5.14 ERA in five career starts against Pittsburgh.