Matt Carpenter hit his career-high and National League-leading 29th homer and Jedd Gyorko drove in the deciding run Sunday as the St. Louis Cardinals edged the host Pittsburgh Pirates 2-1 at PNC Park.
The Cardinals, who scored both runs in the fifth, took two of three in the series to emerge with a one-game lead over Pittsburgh for third place in the National League Central.
Pittsburgh’s Adam Frazier was 2-for-4, including a homer in the seventh.
The teams had combined for 25 runs over the first two games of the series. St. Louis had 39 hits in the weekend series.
Cardinals right-hander Jack Flaherty (5-6) struck out seven in six scoreless innings, giving up three hits and one walk. He was pulled despite his strong outing and reaching only 84 pitches.
Bud Norris pitched a perfect ninth for his 21st save.
Pittsburgh starter Trevor Williams (9-7) allowed two runs and nine hits in five innings, with three strikeouts and no walks.
It was the fourth time this season Flaherty and Williams opposed each other, with each previously picking up one win, one loss and one no-decision.
Williams extended his streak of scoreless innings to 21 by keeping St. Louis at bay through the first four innings.
In the fifth, Carpenter hit a one-out homer to right for a 1-0 Cardinals lead. He had a homer in each of game in the series.
Yadier Molina and Jose Martinez followed with singles. After Marcell Ozuna popped out, Gyorko’s base hit to left brought Molina home to make it 2-0.
The Pirates had runners at the corners with one out in the fifth and opted to pinch hit for Williams, but Jordan Luplow grounded into an inning-ending double play.
With one out in the seventh, Frazier hit his fourth homer, to right off reliever Chasen Shreve, to cut Pittsburgh’s deficit to 2-1. Since he was recalled from Triple-A Indianapolis July 25, Frazier is 13-for-31 with seven doubles, the homer and six RBIs in 10 games.