Marquis took the NL lead with his eighth win and Troy Tulowitzki homered for the first time in nearly a month as the Rockies completed their first sweep in St. Louis with a 5-2 victory on Monday.
Colorado starters totaled 29 1/3 innings with a 2.45 ERA and won all four games.
"We pitched great the entire series and we deserved to win these games," manager Jim Tracy said. "What we did here is not easy to do, and we did a terrific job."
The Rockies won their season-high fifth in a row. St. Louis has lost a season-worst four straight.
"We're in a rut now and it could be that we're pressing," manager Tony La Russa said. "The bullpen had some bad moments, starters had some bad moments. Offense. Defense. Manager."
Colorado last swept the Cardinals in July 1994, winning four straight at Mile High Stadium. The Rockies are 7-4 under Tracy after going 18-28 with Clint Hurdle.
"You can't put your head way down when things start going bad, because they're going to change," first baseman Todd Helton said. "You just keep working and focusing on the process, not the result."
Marquis (8-4) allowed two runs in 6 2/3 innings against the Cardinals, for whom he won 42 games from 2004-06. He leads the league with five road victories, and has won four of his last five starts overall.
"This is my fourth team so I've been through it enough to control the emotions," Marquis said. "But it still feels like I'm at home because I played here for so long and had good success."
The Cardinals were outscored 33-9 while winding up a 2-6 homestand. Even star slugger Albert Pujols was in a slump during this series, going 1 for 14.
"We've got to be tough mentally," catcher Yadier Molina said. "We lost this series, but tomorrow is another day."
Rockies starters have worked at least six innings in all eight games this month. Huston Street made his first appearance in the series and worked the ninth for his ninth save in 10 chances.
Barmes singled for the go-ahead hit in the fifth and Hawpe added a sacrifice fly for a 3-1 lead. Tulowitzki hit his sixth homer, and first since May 10, in the sixth off Jason Motte for a three-run cushion.
Molina singled in the fourth for his 500th career hit, and then doubled and scored on Ryan's single with two outs in the seventh for St. Louis. Barmes' second RBI single in the eighth put the Rockies ahead 5-2 in the eighth.
"I would have loved a chance to get out of my own mess," Thompson said. "A ground ball away from getting out of that."
Cardinals INF Joe Thurston left the team after the game to attend to the birth of his first child in California. La Russa said he'd likely rejoin the team on Thursday. ... Cardinals 2B Skip Schumaker got an error for failing to cover the bag on Seth Smith's steal in the eighth, allowing the runner to advance to third. The Cardinals pitched out on the play, and Molina's throw sailed into center field. ... Barmes is 13-for-26 (.500) in the last six games and has a five-game RBI streak, totaling nine. ... The Rockies had three five-game winning streaks last year, the last from Aug. 15-20. ... Hawpe is 15 for 40 (.375) during a 10-game hitting streak. ... Neither team turned a double play the last two games and the Cardinals have gone 34 innings without one.