Having trailed the Pirates as recently as last week, the Cardinals are now one and a half games ahead of both them and the charging Cincinnati Reds heading into Monday's off day.
Young pitcher Michael Wacha was the Cards' star in their latest win, allowing just two hits and two walks over seven shutout innings.
Cincinnati beat the Los Angeles Dodgers 3-2 thanks to Ryan Hanigan's RBI double in the ninth.
The win completed a three-game sweep of the NL West-leading Dodgers.
Atlanta's wobbles continued as they lost 3-2 to Philadelphia, the Phillies completing a series sweep.
Darin Ruf's solo homer in the eighth put the home side ahead for good after Evan Gattis had earlier hit two homers for Atlanta, the first the longest of the season in the big leagues at 486 feet.
The NL East-leading Braves are now 12 games ahead of Washington, who beat Miami 6-4.
Wilson Ramos and Ian Desmond both drove in two runs and starter Stephen Strasburg fanned seven over six innings for the win.
Elsewhere in the NL, Milwaukee beat the Chicago Cubs 3-1, San Francisco required 11 innings to see off Arizona 3-2 and San Diego overcame Colorado 5-2.
Boston narrowly missed clinching their first sweep of four games or more at Yankee Stadium in 74 years as Ichiro Suzuki scrambled home in the bottom of the ninth to give New York a 4-3 win.
Will Middlebrooks had tied it for the Red Sox at 3-3 with an opposite-field homer to open the ninth against Mariano Rivera.
But Suzuki scored the winning run in the bottom half when he capitalised after Brandon Workman's wild pitch ricocheted off the glove of Red Sox catcher Jarrod Saltalamacchia to race home from third base.
Boston are seven and a half games clear of Tampa Bay, who beat Seattle 4-1.
AL West leaders Oakland beat Houston 7-2, Texas squeezed past the Los Angeles Angels 4-3, Minnesota went down 2-0 to Toronto, Kansas City overcame Detroit 5-2 and the Chicago White Sox edged out Baltimore 4-2.
In interleague play, Cleveland lost 2-1 to the New York Mets.