2017 National League MVP candidate Charlie Blackmon hasn’t missed a beat to start 2018. Although he was hitless in the Colorado Rockies’ opener (he did walk twice), he’s homered three times through the season’s first three games, including a pair of solo shots on Saturday night in a 2-1 Rockies victory.

The win was Colorado’s first of the year.

After hitting a game-tying three-run home run in the fourth inning of an eventual 9-8 loss on Friday, Blackmon’s two home runs on Saturday were even more clutch.

On the pitching side, a battle of dominant starters lived up to the billing and two of the best bullpens in baseball locked horns.

Arizona Diamondbacks ace Zack Greinke didn’t start on Opening Day, but he wound up facing a pitcher with ace material anyway.

Greinke had to delay his first start of 2018 two games because of a lingering groin injury suffered in Spring Training. As a result, he started the final game of a three-game series with the Rockies — doing so looking for a season-opening sweep of the division rivals.

Opposite the 34-year-old former Cy Young winner was German Marquez. Colorado’s wins, innings and strikeouts leader in 2017 — still just 23 years old.

Marquez departed the game trailing 1-0, but he would not factor into the decision thanks to some help from his centerfielder.

Arizona manufactured their run in the fourth inning beginning with a one-out base hit by Daniel Descalso. A fielding error by Trevor Story on a would-be double play ball from Jarrod Dyson put Descalso on third base. Descalso came around to score on a Nick Ahmed ground out to Story.

Greinke cruised through the first five innings, allowing just three hits and striking out eight. The third time through the Rockies’ lineup proved more difficult, though, and sparked Blackmon’s big night.

The Rockies centerfielder launched Greinke’s first pitch of the sixth inning over the right-field wall, tying the game with his second home run of the season.

The battle of the bullpens was on in the sixth when Jorge De La Rosa relieved Greinke after Carlos Gonzalez laced a single to center.

Marquez ended the night with with 5.0 innings pitched, 4 hits allowed, 4 walks, 4 strikeouts, and one un-earned run allowed. Greinke went 5.2, allowing five hits and striking out nine, but allowing that one big earned run.

Chris Rusin issued a one-out walk to the speedy Dyson in the bottom of the sixth, but induced a double-play against Ahmed to end the inning.

Fernando Salas retired the Rockies in order in the seventh, including pinch-hitter Ryan McMahon who came in for Ian Desmond to lead off the inning. Desmond left the game with what the club called “right knee soreness.”

Bryan Shaw did his part, rolling up David Peralta on a 6-4-3 double play to end the bottom of the seventh after allowing a one-out single to Chris Owings. Story nearly lost his footing turning to throw, but made a clean delivery to DJ LeMahieu who delivered a bullet the outstretched glove of McMahon. The Rockies turned three double plays in the game, none more critical than that one. Shaw (1-0, 0.00 ERA) earned the win

Blackmon struck again in the eighth inning, this time with one out against Salas (0-1, 3.00), to give Colorado a 2-1 lead.

Jake McGee, re-signed this past offseason as a free agent along with Shaw and closer Wade Davis, faced Arizona’s big dogs in the eighth. McGee sent a pair of balls Story’s way — first a ground ball from A.J. Pollock, followed by a line drive out from Paul Goldschmidt. That group was just 1-for-11 with a walk (both positive outcomes coming from Pollock) after McGee froze Jake Lamb on a 2-2 fastball to end the eighth.

Andrew Chafin sat down the Rockies in order in the ninth, setting up Wade Davis’ first appearance for the Colorado.

Davis signed the most-lucrative contract ever handed to a relief pitcher this offseason and quickly got to work proving his worth. He got ahead of Descalso before inducing a soft fly out to centerfield for the first out. After falling behind Ketel Marte 2-0, Davis climbed back to strike out the pinch hitter with a backdoor slider at 3-2. Ahmed, who homered and set a career high with 5 RBIs in Friday’s D-Backs win, worked Davis to 3-2 as well but chased a slider out of the zone to end the game and earn his first save for the Rockies.

NEXT UP: The Rockies have Easter Sunday off. They begin a four-game series in San Diego on Monday. First pitch is scheduled for 8:10 p.m. MDT. Chad Bettis will face Bryan Mitchell.