Matt Holliday had an RBI double for the Cardinals, who have mustered five runs in their last six games. They got three hits and a run in seven innings off five Pittsburgh relievers.
Yadier Molina was a bust on his jersey giveaway day, striking out with the bases loaded to end the third against Stolmy Pimentel (2-0) and popping out with runners on second and third to end the fifth against Jared Hughes. He entered batting .431 during a 15-game hitting streak.
Andrew McCutchen and Jose Tabata each added an RBI off Tyler Lyons (0-2) in the fourth, with the first four runners reaching safely after the lefty opened with three perfect innings. Tabata totaled three hits and is a career .345 hitter at Busch Stadium.
The Pirates have scored seven runs while Liriano was in the game in his six starts. They jumped into gear the inning after the lefty was taken out en route to just their third win in their last 10 games.
They've also struggled offensively, totaling four runs the previous four games.
Liriano walked Lyons to start the third and was behind 3-0 against leadoff man Matt Carpenter before meeting with a trainer on the mound, and then departing.
Tony Sanchez added a two-run single in the ninth off Eric Fornatoro after striking out his first three at-bats.
NOTES: Cardinals ace Adam Wainwright (4-1, 1.46) is set to work the finale against Edinson Volquez (1-1, 1.93) after tweaking his right knee in his last start. ... St. Louis first baseman Matt Adams made an outstanding diving catch to rob Pimentel of an opposite-field line drive hit in the fifth. ... Jhonny Peralta hit his 300th career double off Justin Wilson in the seventh. ... Allen Craig singled in four trips and is 1 for 18 against the Pirates this year.
Link to box score: Pittsburgh 6 at St. Louis (13-12) 1
Join the pre-game, in-game and post-game discussion about each contest at The Cardinal Nation message board.