Shelby Miller returned to the Cardinals' rotation and pitched effectively into the sixth inning. Adams hit a two-run double in the first and a two-run triple in a four-run seventh that was capped by Pierzynski's RBI single.
The 37-year-old Pierzynski signed with the Cardinals on Saturday, 10 days after he was released by Boston. St. Louis had been looking for a steady presence behind the plate since All-Star catcher Yadier Molina tore a ligament in his right thumb July 9.
Molina had surgery two days later and is expected to miss eight to 12 weeks.
Miller began the game with three perfect innings and retired 16 of his first 18 batters. In his first start since being removed from the rotation July 10, Miller allowed two runs and three hits in 5 2-3 innings. The young right-hander had given up at least three runs in his previous five starts.
Nate Schierholtz hit a solo shot for the Cubs in the sixth, tying it at 2. It was Schierholtz's fourth career pinch-hit homer.
Rizzo drove in a run with a groundout in the fourth.
Adams doubled sharply in the first, a one-hopper that bounced past first baseman Anthony Rizzo and into right field to score two runs. Adams' two-run triple with two outs in the seventh made it 5-2.
Cubs starter Jake Arrieta settled in after the two-run first inning, allowing just three baserunners the rest of the way. He thwarted Cardinals threats in the fourth and fifth, and a diving catch by left fielder Chris Coughlan helped Arrieta escape the sixth.
With Arrieta out of the game, the Cardinals pulled back ahead in the seventh, scoring four runs against reliever James Russell (0-2). Jon Jay hit a leadoff single, advanced on a sacrifice and stole third before scoring the tiebreaking run on Matt Carpenter's grounder.
Russell's four earned runs allowed marked his worst outing since July 21, 2012, when he gave up six earned runs, also against the Cardinals.
NOTES: Adams had only four RBIs in his previous 23 games against the Cubs. ... Pierzynski, who batted sixth for the Cardinals, was booed loudly by the Wrigley Field crowd during his first at-bat. Pierzynski played seven seasons on the south side of Chicago for the White Sox. ... The Cubs optioned RHP Neil Ramirez to Triple-A Iowa and recalled RHP Blake Parker. The 25-year-old Ramirez has a 0.96 ERA in 33 appearances this season. Chicago manager Rick Renteria indicated the move was made to give Ramirez a rest and was not based on performance. ... Rizzo went 0 for 4, ending his 10-game hitting streak. ... Cardinals ace Adam Wainwright (12-5, 2.02 ERA) pitches the series finale Sunday against Kyle Hendricks (1-0, 2.77), who will make his third big league start.
Link to box score: St. Louis (55-48) 6 at Chicago Cubs (42-60) 3
Join the pre-game, in-game and post-game discussion about each contest at The Cardinal Nation message board.