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
The Texas Rangers have fired manager Jeff Banister after four seasons, the team announced Friday.
If not for the pesky Pittsburgh Pirates, the Milwaukee Brewers might be leading the National League Central, or at least running neck-and-neck with the first-place Chicago Cubs.
For the first time in a month, the Chicago Cubs will play after an off-day as they head into the stretch run of what they hope leads to their third straight National League Central Division title.
The New York Mets dinged Max Scherzer's Cy Young chances Thursday night.
Trevor Bauer will take the mound Friday night for the first time in more than a month as the Cleveland Indians host the Boston Red Sox in the first contest of a three-game series at Progressive Field.
Melisa Reidy-Russell detailed allegations of abuse during her marriage to Addison Russell, which led to the Cubs shortstop being put on leave by MLB.