Mike Leake pitched seven effective innings, Matt Holliday homered and the Cardinals cruised to an 8-3 victory Sunday.
Randal Grichuk also homered for surging St. Louis, which has won five consecutive games and swept a series at PNC Park for the first time since August 2009. Holliday and Yadier Molina each had three hits.
Leake (5-4) won for the fifth time in six decisions, limiting the Pirates to two earned runs and six singles with no walks and six strikeouts. He also went 2 for 3 at the plate and scored during the Cardinals' three-run third.
The slumping Pirates have lost a season-worst five straight and fell a season-high 12 games behind the first-place Cubs in the NL Central.
St. Louis scored four times in the sixth, capped by Grichuk's solo homer to left field that ended the evening for Pirates starter Jonathon Niese. Grichuk snapped out of a 2-for-24 slump with the home run, his eighth.
Niese (6-3) lost for the first time since May 9. He was charged with season highs for runs (eight) and hits (11).
David Freese and Starling Marte each had two hits and an RBI for the Pirates.
St. Louis begins a stretch in which it will play American League teams 12 of the next 15 games, beginning with two games Tuesday and Wednesday against the Astros. LHP Jaime Garcia (4-5, 3.89 ERA), who allowed a career-high 13 hits in a win Wednesday, starts Tuesday against Houston RHP Doug Fister (6-3, 3.34).