Brandon Moss and Ramon Vazquez hit the long balls to support Charlie Morton's six shutout innings.
Moss's home run was his second of the season. Vazquez, starting a second consecutive game for injured second baseman Freddy Sanchez, belted his first homer since July 31, 2008.
"When you start two days in a row, it's easier to make adjustments," Vazquez said. "You feel more comfortable. It's not the same as pinch-hitting where you get only one at-bat and then you're done."
Hanley Ramirez failed to drive in a run for the first time in 11 games for Florida, which was coming off a three-game sweep of Washington.
Morton (1-1) gave up one hit, walked four and struck out four as the Pirates beat Florida for the fourth straight time and improved to 14-8 against the NL East. Pittsburgh swept a home series against the Marlins in April.
"When you get run support you know you just have to stay in the game," Morton said.
"He broke bats, got strikeouts when he needed them, it's a sign of a guy with quality stuff. That's very impressive," Pirates manager John Russell said.
Andrew McCutchen's run-scoring double and Jack Wilson's two-run double highlighted a three-run seventh that gave Pittsburgh a 7-0 lead.
John Baker had three RBI, including a two-run homer in the ninth for the Marlins.
Ramirez entered the game with the longest consecutive-game RBI streak by an NL shortstop since the statistic began being officially kept in 1920. Ramirez's best opportunity came in the sixth, when he popped to short with runners on first and third and one out.
"We had Morton against the ropes a couple of times but he made pitches when he had to," Marlins manager Fredi Gonzalez said.
Chris Volstad (5-8) allowed four runs and three hits in three innings. He bunted into an inning-ending double play immediately following a 45-minute rain delay in the third, then was replaced by Tim Wood to start the fourth.
"I would have liked that delay to be a little shorter so I could go out there again," Volstad said. "The trend so far this year is the pitches I leave up they're hitting out."
Pittsburgh took a 1-0 lead in the first when Moss hit a two-out homer just over the wall in right-center.
"I don't care if everyone hits the top of the wall. I don't care if they do the Jose Canseco thing and hit the head and goes over the fence. It counts," Moss said.
Vazquez's two-run shot in the second made it 3-0. Andy LaRoche walked with one out before Vazquez homered to right on Volstad's first pitch.
Pittsburgh's lead increased to 4-0 when McCutchen scored on Moss's fielder's choice.
Florida scored twice in the seventh, when Cody Ross and Baker had back-to-back doubles and pinch-hitter Ross Gload followed with a single.
The game started 30 minutes late due to storms in the area.