The Pirates have won back-to-back games for only the second time in 23 days. They climbed to 16 games above the .500 level on Aug. 6, but then slipped to just eight games over the break-even mark before downing the Cardinals twice in a row.
It was also the second straight shutout for Pittsburgh over St. Louis and moved the Pirates within a game of the Cardinals for second place in the National League Central.
The Pittsburgh offense was highlighted by a three-run homer from Pedro Alvarez in the third, his 26th of the year. Alvarez also scored on a fifth-inning single by Josh Harrison.
Joe Kelly (4-6) was the loser, giving up five runs on eight hits in five innings.