Dexter Fowler's two-run triple sparked the Cardinals to an 11-7 comeback win over the Pirates.
With the Cardinals trailing 5-4 with one out in the seventh inning, Fowler tripled down the right field line off reliever Joaquin Benoit to give St. Louis a 6-5 lead.
Yadier Molina followed with an RBI single to make it 7-5 and chase Benoit (1-6), who allowed three runs on three hits in a third of an inning. Benoit has surrendered nine runs in six games for the Pirates since being acquired from the Philadelphia Phillies on July 31.
St. Louis added four more runs in the ninth inning before Pittsburgh answered with two in the bottom half.
Fowler went 2 for 3 with three RBIs, scored three runs and walked twice in his 10th game since getting off the 10-day disabled list with a wrist injury.
Righty Sam Tuivailala (3-1) pitched one scoreless inning for the win. He allowed three hits but escaped trouble withtwo strikeouts.
Cardinals starter Adam Wainwright lasted just three innings for the second time in his past three starts while allowing five runs on seven hits.
Pirates left-hander Jameson Taillon was lifted after rain halted play following the fifth inning. He surrendered four runs on seven hits with seven strikeouts in five innings.
Carlos Martinez (9-9, 3.56) could win a third straight start when he takes the mound against the Pirates on Friday. He surrendered a combined five runs in two consecutive wins, 11-3 over the Kansas City Royals on Aug. 7 and 6-5 over the Atlanta Braves on Aug. 12.
Trevor Williams (5-5, 4.19) will look to bounce back from losing his last start when he faces the Cardinals on Friday. He allowed four runs - three earned - in six innings in a 7-2 loss to the Toronto Blue Jays on Aug. 12.