Jon Gray struck out seven in eight strong innings and Nolan Arenado and Ryan McMahon homered for the second straight game, leading the Colorado Rockies to a 3-0 win over the Miami Marlins on Friday night.

Gray scattered five hits and didn't walk a batter in his best outing of the season. He threw 100 pitches and was an inning short of the second complete game of his career. He pitched eight innings for the second time in four starts.

More Images
Miami Marlins' Brian Anderson watches a single off Colorado Rockies relief pitcher Scott Oberg during the ninth inning of a baseball game Friday, Aug. 16, 2019, in Denver. The Rockies won 3-0. (AP PhotoDavid Zalubowski)

Jon Gray struck out seven in eight strong innings and Nolan Arenado and Ryan McMahon homered for the second straight game, leading the Colorado Rockies to a 3-0 win over the Miami Marlins on Friday night.

Colorado Rockies' Ryan McMahon reacts after striking out against Miami Marlins starting pitcher Sandy Alcantara to end the sixth inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Gray struck out Lewis Brinson with runners on first and second, and then got an inning-ending double play by Bryan Holaday. Gray set down 12 batters on groundouts, starting with Holaday's double play.

Colorado Rockies starting pitcher Jon Gray gestures after retiring Miami Marlins' Harold Ramirez to end the top of the seventh inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

TRAINER'S ROOM

Miami Marlins third baseman Starlin Castro throws to first base to put out Colorado Rockies' Jon Gray to end the seventh inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

The Marlins activated Walker from the 10-day injured list before the game and designated infielder Deven Marrero for assignment. Walker missed 12 games with a right index finger sprain.

Miami Marlins third baseman Jon Berti, back, throws to first base after forcing out Colorado Rockies' Yonder Alonso at second base on a ground ball hit by Raimel Tapia, who was safe at first during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Miami will send RHP Hector Noesi (0-2, 8.18) against Colorado RHP German Marquez (11-5, 4.57) in the second game of the weekend series on Saturday night. Noesi has never faced the Rockies, while Marquez is 1-3 in four career starts against the Marlins.

Colorado Rockies' Ryan McMahon gestures as he crosses home plate after hitting a two-run home run off Miami Marlins starting pitcher Sandy Alcantara, as catcher Bryan Holaday stands nearby during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Colorado Rockies' Ryan McMahon gestures as he crosses home plate after hitting a two-run home run off Miami Marlins starting pitcher Sandy Alcantara, as catcher Bryan Holaday stands nearby during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

McMahon hit a two-run homer in the second inning, his 15th of the season, in support of Gray, who retired 15 batters in a row after Miami led off the second with consecutive singles.

Miami Marlins' Brian Anderson watches a single off Colorado Rockies relief pitcher Scott Oberg during the ninth inning of a baseball game Friday, Aug. 16, 2019, in Denver. The Rockies won 3-0. (AP PhotoDavid Zalubowski)

Miami Marlins' Brian Anderson watches a single off Colorado Rockies relief pitcher Scott Oberg during the ninth inning of a baseball game Friday, Aug. 16, 2019, in Denver. The Rockies won 3-0. (AP PhotoDavid Zalubowski)

Gray struck out Lewis Brinson with runners on first and second, and then got an inning-ending double play by Bryan Holaday. Gray set down 12 batters on groundouts, starting with Holaday's double play.

Miami's Sandy Alcantara (4-11) was nearly as good, going seven innings and allowing just three hits. He walked four, including one ahead of McMahon's homer, and struck out just two. He retired the last seven batters he faced.

Arenado homered in the eighth, his 28th. Scott Oberg got the final three outs for his fifth save.

Colorado Rockies' Ryan McMahon reacts after striking out against Miami Marlins starting pitcher Sandy Alcantara to end the sixth inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Colorado Rockies' Ryan McMahon reacts after striking out against Miami Marlins starting pitcher Sandy Alcantara to end the sixth inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

TRAINER'S ROOM

Marlins: RHP Jose Urena (lower back soreness) was scheduled to make a rehab start for Class A Jupiter on Friday night, while RHP Pablo Lopez (right shoulder strain) was slated to throw an inning for Triple-A New Orleans. Both have been out since mid-June.

WELCOME BACK

Colorado Rockies starting pitcher Jon Gray gestures after retiring Miami Marlins' Harold Ramirez to end the top of the seventh inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Colorado Rockies starting pitcher Jon Gray gestures after retiring Miami Marlins' Harold Ramirez to end the top of the seventh inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

The Marlins activated Walker from the 10-day injured list before the game and designated infielder Deven Marrero for assignment. Walker missed 12 games with a right index finger sprain.

"It's good to get Walk back, gives us a lefty, a switch-hitter and a guy who can play both corners," manager Don Mattingly said. "It just helps our lineup, lets us stretch it different ways."

UP NEXT

Miami Marlins third baseman Starlin Castro throws to first base to put out Colorado Rockies' Jon Gray to end the seventh inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Miami Marlins third baseman Starlin Castro throws to first base to put out Colorado Rockies' Jon Gray to end the seventh inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Miami will send RHP Hector Noesi (0-2, 8.18) against Colorado RHP German Marquez (11-5, 4.57) in the second game of the weekend series on Saturday night. Noesi has never faced the Rockies, while Marquez is 1-3 in four career starts against the Marlins.

More AP MLB: https://apnews.com/MLB and https://twitter.com/AP_Sports

Miami Marlins third baseman Jon Berti, back, throws to first base after forcing out Colorado Rockies' Yonder Alonso at second base on a ground ball hit by Raimel Tapia, who was safe at first during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Miami Marlins third baseman Jon Berti, back, throws to first base after forcing out Colorado Rockies' Yonder Alonso at second base on a ground ball hit by Raimel Tapia, who was safe at first during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Colorado Rockies' Ryan McMahon gestures as he crosses home plate after hitting a two-run home run off Miami Marlins starting pitcher Sandy Alcantara, as catcher Bryan Holaday stands nearby during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)

Colorado Rockies' Ryan McMahon gestures as he crosses home plate after hitting a two-run home run off Miami Marlins starting pitcher Sandy Alcantara, as catcher Bryan Holaday stands nearby during the second inning of a baseball game Friday, Aug. 16, 2019, in Denver. (AP PhotoDavid Zalubowski)