Velasquez got the first two outs of the seventh before walking Carlos Gonzalez. Trevor Story followed with a double on a 2-2 pitch -- Velasquez's 105th of the afternoon -- to drive in Gonzalez and break up the no-hit bid.
Velasquez had one complete game in his previous 59 career starts but needed 85 pitches to get through the first six innings. He got DJ LeMahieu to fly out and Charlie Blackmon to ground out to start the seventh before walking Gonzalez on five pitches.
Velasquez left after Story's double, and Gerardo Parra followed with a single off reliever Tommy Hunter to make it 3-2. Hunter struck out Ian Desmond to end the inning.
Velasquez (5-7) got his first win since going 6 1/3 innings against St. Louis on May 17. He struggled in his last start before Thursday, allowing 10 runs in 3 2/3 innings against Milwaukee on June 8.
Velasquez allowed two runs on one hit and struck out six, and Nick Williams and Rhys Hoskins homered for Philadelphia.
The Phillies took a 2-0 lead on solo homers by Hoskins in the first inning and Williams in the second off German Marquez (4-7). Williams' double in the sixth scored Cesar Hernandez to give Velasquez a three-run cushion.
The Phillies pulled away after the Rockies cut the deficit to one run in the seventh. Andrew Knapp and Scott Kingery led off the bottom of the frame with singles, and J.P. Crawford walked. Jake McGee came on and got Hernandez to pop out, but a passed ball scored one run, Hoskins doubled home another and Odubel Herrera singled to make it 6-2.
Carlos Santana singled off Jeff Hoffman to drive in another run.
Ryan McMahon hit his first career homer for Colorado in the eighth, and the Phillies added two runs in the bottom of the inning.
--Field Level Media