Garcia, who homered and drove in five runs in a 9-5 win Saturday, and Shaw hit early drives that helped the Brewers build a 7-0 lead in the second inning.
“Any time you score that many in the top of the first, it kind of settles everybody into the game,” Shaw said. “We poured some more on in the second. The pitching held on, so it was a good day.”
Brett Anderson (1-1) tossed five effective innings for Milwaukee, which has won four of five.
Austin Dean had a two-run double for the Cardinals, who have lost two in a row after a four-game winning streak.
The Brewers scored four times in the first off Daniel Ponce de Leon (1-1) in batting around for the first time this season. Lorenzo Cain began the game with a first-pitch double, Daniel Vogelbach followed with an RBI single and Garcia homered.
The outburst helped Anderson relax on the mound. He drew a bases-loaded walk in the opening frame to give him an RBI before he ever took the mound.
“You don’t anticipate that, but it’s a good problem to have,” Anderson said. “It was good to see the offense clicking on all cylinders. A little tough to get into a rhythm. not the greatest outing by any stretch. But I was able to grind through five.”
Garcia hit homers in back-to-back games for the first time since May 22-23, 2019, when he was with Tampa Bay.
Shaw hit a three-run homer off Ponce de Leon in the second. Shaw left the game as a precautionary measure after fouling a ball off his shin in a fourth-inning plate appearance.
“It’s a little sore, but should be good to go tomorrow,” Shaw said. “Overall, not terrible.”
Shaw went 5 for 10 in the series with four RBIs.
The Brewers won two out of three games against NL Central rivals Chicago and St. Louis. Their starting pitching shined in both series.
“It’s a strength of the team,” manager Craig Counsell said. “And they’ve delivered thus far this season. They’ve all done their job and each time out given us a chance to win.”
Anderson allowed one run on four hits. He struck out one and walked two.
“You get on a roll and you try and pass the baton on to the next guy,” Anderson said.
Milwaukee outfielder Christian Yelich left the game in the second inning with back soreness. He is considered day-to-day, according to Counsell.
Pina added a two-run homer in the ninth.
Ponce de Leon lasted just 1 1-3 innings and gave up six hits and seven runs.
“I could not get going,” he said. “I did my usual warmup, felt pretty good getting out there. I got on the mound and there was just nothing there.”
St. Louis newcomer Nolan Arenado extended his hitting streak to nine games with a first-inning single.
St. Louis C Yadier Molina batted in the cleanup spot on Sunday for the first time since June 2, 2017, when he went 0-for-3 in a 3-2 loss to the Chicago Cubs. Molina went 1 for 3 on Sunday and his hitting .367.
Brewers: Milwaukee INF Jace Peterson started at second base with Kolten Wong on the 10-day injury list with an oblique issue. Peterson underwent cryotherapy on a sore thumb after spring training was completed. “It seems to be working,” he said.
Cardinals: OF Tyler O'Neill was placed on the 10-day injury list with a right groin strain suffered during his first plate appearance on Saturday.
Brewers: RHP Freddy Peralta (1-0, 0.00) will take on Chicago Cubs RHP Adbert Alzolay (0-1, 7.20) in the first of a three-game series on Monday in Milwaukee. Peralta is 3-1 with a 3.78 ERA in seven lifetime appearances against Chicago.
Cardinals: RHP John Gant (0-0, 0.00) will face Washington RHP Erick Fedde (0-1, 27.00) in the opening game of a three-game series on Monday in St. Louis. Gant has not allowed a home run in his last 39 1-3 innings, the longest current streak in the NL.