The Phillies won hours after putting slugger Bryce Harper on the 10-day injured list because of a bruised left forearm.
Scratched from his previous start because of finger discomfort on his pitching hand, Velasquez (2-0) struck out five and walked three. The right-hander continued a solid May, lowering his ERA this month to 1.17 in four starts and one relief outing.
Hoskins hit his 10th homer in the fourth, a two-run drive off Sandy Alcantara (2-4).
Alcantara allowed only two hits in eight innings, and retired his final 13 batters after Hoskins’ homer. The right-hander struck out four and walked one in his longest outing of the season.
Sam Coonrod pitched a scoreless seventh and Jose Alvarado followed with a perfect eighth for the Phillies. Hector Neris got his eighth save, working around Garrett Cooper’s two-out single in the ninth.
The Marlins loaded the bases with two out in the third before Velasquez ended the treat, retiring Jesus Aguilar on a line drive.
Jazz Chisholm’s aggressive baserunning cost Miami two outs. Phillies catcher Andrew Knapp threw Chisholm out as he tried to steal third in the first, then center fielder Odubel Herrera’s throw denied Chisholm’s attempt to stretch a leadoff single into a double in the sixth.
Phillies OF Roman Quinn was reinstated from the injured list. Quinn had been sidelined with a laceration to his right index finger.
Marlins: 3B Brian Anderson (partial left shoulder dislocation) was placed on the 10-day injured list and is expected to miss several weeks.
RHP Aaron Nola (3-4, 3.94) will start the third game of the series for the Phillies on Wednesday while the Marlins have not announced their starter.
More AP MLB: https://apnews.com/hub/MLB and https://twitter.com/AP_Sports