Moss's home run was his second of the season. Vazquez, starting a second consecutive game for injured second baseman Freddy Gonzalez, 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.
John Baker had three RBIs, 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.
The game started 30 minutes late due to storms in the area.
Vazquez's previous home run was for Texas against Seattle. ... Florida's Emilio Bonifacio (0 for 4) had his nine-game hitting streak snapped. ... Sanchez (back tightness) was a late scratch. He was listed as day-to-day. ... Pirates C Ryan Doumit (right wrist) went 0 for 2 and caught five innings during his rehab debut with Bradenton (Gulf Coast League) on Friday. Pittsburgh hopes to have Doumit early in the second half of the season. ... Marlins RHP Kiko Calero (shoulder) is scheduled to throw Saturday and Monday at Class A Jupiter (Florida State League). If all goes well, he could rejoin the Marlins in Arizona next weekend.