With the Cardinals trailing 1-0, Jhonny Peralta led off the eighth with an infield single. Randal Grichuk followed with a double, sending pinch-runner Tommy Pham to third, and he scored the tying run on a groundout by pinch-hitter Matt Adams.
Grichuk went to third on the play, and after Matt Carpenter was intentionally walked, Kolten Wong put the Cardinals ahead with the game-winning hit through the right side of the infield off reliever Corey Knebel.
Jhan Marinez relieved Knebel and was greeted by the two-run double from Piscotty to make it 4-1. He then scored the final run of the inning on a single by Yadier Molina.
The win gave the Cardinals their first back-to-back victories at home since a five-game streak ended July 22. By keeping it a 1-0 game until the eighth, Adam Wainwright (11-8) was able to pick up his first victory at Busch Stadium since July 16.
Wainwright allowed six hits in eight innings, with the only Milwaukee run coming on a home run by Keon Broxton.
Wainwright kept it a 1-0 game in the top of the eighth by throwing a called third strike past Hernan Perez with the bases loaded to end the inning. Perez was ejected after arguing the call.
The Brewers had limited the Cardinals to three hits through the first seven innings.
Broxton put the Brewers in front with a one-out homer off Wainwright in the fifth. It was Broxton's seventh of the season and only the second allowed by Wainwright in 89 innings at home this season.
Both starting pitchers were sharp in the early innings. Wainwright allowed two hits before Broxton's homer, both singles in the second, but he escaped trouble with an inning-ending double play.
Chase Anderson also allowed only two hits through the fourth, neither of which left the infield.
A throwing error by third baseman Jonathan Villar on Wainwright's slow roller let him get to second with one out in the third. He advanced to third on a fly ball but was stranded there when Wong flied out to center.
NOTES: Cardinals RHP Trevor Rosenthal, who has out since July 26 because of inflammation in his right shoulder, threw live batting practice on Saturday. The team hopes to activate him sometime next week. ... After thinking SS Aledmys Diaz might be back in St. Louis on Saturday, he instead continued his rehab assignment with Double-A Springfield, starting in Game 4 of the Texas League playoffs. He went 0-for-5 as the Cardinals were eliminated by Northwest Arkansas. He is scheduled to return to St. Louis on Sunday and could be activated for the final game of the series. ... C Martin Maldonado, who became the Brewers' starter after the trade of Jonathan Lucroy, got the day off Saturday as C Andrew Susac made his first start. Susac was recalled from Triple-A on Tuesday. ... RHP Luke Weaver starts for the Cardinals against Brewers' RHP Zach Davies on Sunday.