Gray (9-7) has won his last four decisions, and the Rockies have won the last five games he's started. That includes three straight victories since a brief demotion to Triple-A to clear the young right-hander's head.
Gray struck out five over 7 1/3 innings, helping Colorado finish the month 17-6. Gray allowed three runs, two earned, with four hits and two walks.
"I'm definitely feeling more competitive than I ever have before which is good," Gray said. "That's one thing I want to feel all the time out there is competitive and ask myself, `How good can you be today?' and just go with that.
"Just making the game fun and playing the small games within a game has been carrying me through."
Manager Bud Black liked what he saw.
"He probably threw a few more true curveballs tonight than the previous couple outings," Black said. "It was working well. The change of velocity from the curveball to the fastball I think was a great variable for Jon."
Wade Davis got his 31st save in 35 opportunities with a 1-2-3 ninth inning. He saved a career-high 32 last year with the Cubs.
Colorado went ahead 2-1 on Blackmon's homer in the fifth. Ryan McMahon led off with a 12-pitch walk, and with two outs, Blackmon hit a 1-2 pitch into the right field bleachers. Blackmon's homer extended his hitting streak to 13 games.
Matt Carpenter led off with a home run, sending an 0-2 pitch into the right field seats. It was Carpenter's seventh leadoff home run this season. It was the 22nd of his career, passing Hall of Famer Lou Brock on St. Louis' career list.
"To be in the same sentence with him (Brock) is pretty special," Carpenter said.
Carpenter, who hit an MLB-leading 11 homers in July, leads the Cardinals with 26.
The Cardinals scored two runs in the eighth, cutting the lead to 6-3. St. Louis loaded the bases with one out against Gray. Seung Hwan Oh gave up a sacrifice fly to Carpenter, and a passed ball and throwing error by catcher Tom Murphy allowed Dexter Fowler to score.
Flaherty (4-6) pitched 5 1/3 innings. It marked the first time in five starts he pitched into the sixth inning. He allowed four runs, five hits and two walks. He struck out seven.
Cardinals: St. Louis traded outfielder Tommy Pham and international bonus slot allotment to Tampa Bay for outfielder Justin Williams, left-hander Genesis Cabrera and right-hander Roel Ramirez. The 30-year-old Pham has been a member of the Cardinals organization since being drafted in 2006. He was batting .248 this season with 14 home runs and 41 RBI. St. Louis also acquired minor league outfielders Conner Capel and Jhon Torres from the Cleveland Indians in exchange for Triple-A outfielder Oscar Mercado.
Rockies: RHP Chad Bettis (middle finger blister) will make another rehab start Thursday for Triple-A Albuquerque. If he does well with no problems, he could return to the big club as either a starter or a reliever. Bettis hasn't pitched in the major league since July 1.
Cardinals: RHP Carlos Martinez (right shoulder strain) was placed on the 10-day disabled list on Tuesday and had an MRI. President of baseball operations John Moseliak said the team does not believe the injury is season-ending, and Martinez will be able to pitch again. ... 2B Kolton Wong (left knee inflammation) is eligible to come off the DL on Wednesday but likely will be activated Thursday or Friday. ... St. Louis recalled rookie outfielder Tyler O'Neill and left-handed reliever Tyler Webb from Triple-A Memphis on Tuesday.
Rockies: Kyle Freeland (9-6, 3.13) will be making his first start in St. Louis and second against the Cardinals. He pitched six innings in taking a loss in a 3-0 defeat to St. Louis on May 27, 2017. The Rockies have won each of his last five starts.
Cardinals: RHP Luke Weaver (6-9, 4.70) will make his second career appearance against Colorado. He pitched a career-low two innings in his start in 2016 against the Rockies in an 11-1 loss. In his most recent outing, Weaver pitched six innings and picked up the win in a 5-2 victory over the Cubs.
More AP baseball: https://apnews.com/tag/MLBbaseball
Baseball Tonight Minute: Where will Harper & Keuchel land?
Buster Olney breaks down What Dallas Keuchel is looking for in a deal, who Bryce Harper met with this week and the Red Sox's new batting order.
Greg Bird says he's fully healthy as he, Luke Voit compete at first base
As pitchers and catchers begin reporting to the Yankees' spring-training complex this week, an upbeat and self-proclaimed healthier Greg Bird believes he'll soon get back to being the promising player he once was.
Cubs to 'enhance' domestic violence training ahead of Addison Russell's return
The Chicago Cubs are enhancing their domestic violence training ahead of shortstop Addison Russell's return from suspension later this season.
Reliever Sergio Romo, Marlins agree on one-year deal
The Miami Marlins and reliever Sergio Romo have agreed on a one-year deal, a league source tells ESPN.
Could this be the last year for Joe Maddon with the Cubs?
Pedro Gomez looks ahead to the start of the Cubs' season and what they'll need to do to reach the postseason for the fifth straight year.
Yankees' pitcher Masahiro Tanaka no fan of DH, wants to hit and run at National League ballparks
Despite injuring himself last season running the bases, Yankees pitcher Masahiro Tanaka hopes use of the designated hitter does not spread to the National League.