The Cardinals then scored five runs off the bullpen to complete their first three-game sweep at Wrigley Field since May 1988. They pulled to within 9 1/2 games of the Cubs in the National League Central.
"We grinded one through nine, even [pitcher Michael] Wacha had a pretty long at-bat," said second baseman Matt Carpenter, who drew a walk against Arrieta and scored in the fifth. "We worked his pitch count."
The Cardinals also won their eighth straight road game, their longest streak since winning eight in a row in September 1982.
"We worked a lot of 3-2 counts, and when guys got 3-2, they continued to stay with a simple approach of seeing the ball and trying to put the good part of the bat on it," Cardinals manager Mike Matheny said.
The Cards walked four times against Arrieta, tying a season high for the right-hander, who met that mark for the fifth time this year.
Matheny singled out shortstop Aledmys Diaz, who singled in his first at-bat against Arrieta and lined out against the reigning NL Cy Young Award winner in the third. Diaz hit another single off Arrieta before smacking a two-run home run off Carl Edwards Jr. in the five-run sixth.
"We talk about grinding every at-bat all the time, not any different against him than any other pitcher," Matheny said. "The one who really stood out to me was Diaz and how he just kept going and going and fighting off good pitches, hard pitches, soft, in and out, ends up lining out. But still, that pays a toll not just on a pitcher, but also on defense. That's the kind of offensive approach we want to have as consistently as possible."
With Matt Holliday out of the lineup -- he is 2-for-20 with seven strikeouts against Arrieta -- the Cardinals batted Matt Adams third. Adams was 3-for-his-last-25 but 6-for-18 with two doubles and four RBIs against Arrieta.
Adams struck out twice but drew a walk against Arrieta in the fifth, bringing up Stephen Piscotty, who hit a grounder to third. The Cubs tried to complete a double play, but second baseman Ben Zobrist's throw to first was low for an error, and two runs scored.
"They did a nice job of grinding at-bats and really pushing and just fighting off some tough pitches from obviously a good pitcher and getting themselves in a situation where we put pressure on the defense and making things happen," Matheny said.
With Arrieta out of the game, the Cardinals sent 10 batters to the plate and scored five runs in the sixth. Brandon Moss led off the inning with a double, advanced on a wild pitch and scored on a fielder's choice to third, beating catcher Miguel Montero's tag. Carpenter hit a two-run double, and Diaz smacked a two-run home run, his ninth dinger of the season.