The Marlins, who had won eight of their previous 11 games, dropped out of a first-place tie with Philadelphia in the National League East.
Charlie Morton (1-1), making only his fourth start of the season, threw six shutout innings to get the win.
Brandon Moss put Pittsburgh in front with a solo homer in the first and Vazquez delivered his two-run blast in the second. McCutchen's double came during Pittsburgh's three-run seventh that boosted the Pirates to a 7-0 lead.
Morton allowed only one hit, but three Pittsburgh relievers coughed up five hits and four runs over the final three innings. Three of the Florida runs were driven in by John Baker, who had an RBI single in the seventh and a two-run homer in the ninth.
Chris Volstad (5-8) suffered the loss after giving up four runs on three hits in three innings.
Florida's Hanley Ramirez had his franchise-record streak of 11 games with an RBI come to an end. It was the longest such streak ever by a National League shortstop and the longest in the majors in two years.
Ramirez was hitless in four at bats, only one of which came with a runner on base.