Garcia (2-0) allowed three hits in seven innings, walked three and struck out four to win for the first time in three starts.
Pat Neshek worked the eighth and Trevor Rosenthal finished for the Cardinals, who have a Major League-high 12 shutouts this season. Texas entered Sunday with 11.
St. Louis won back-to-back games for the first time since May 24 and 25 against Cincinnati.
The AL East-leading Blue Jays, who had been blanked just once this season before Saturday, went scoreless for the second straight game and matched their season-low with three hits. Shelby Miller pitched a three-hitter to beat the Blue Jays 5-0 on Saturday.
Toronto lost consecutive games for the first time since May 29-30 against Kansas City. They haven't lost three straight since dropping the first three of a four-game home series against the Angels from May 9-11. The Blue Jays had won seven series since.
The Cardinals opened the scoring with a four-run, bat-around second against Blue Jays right-hander Drew Hutchison. Peter Bourjos hit a sacrifice fly, Tony Cruz had an RBI double and Carpenter followed with a two-run homer, his first since April 4.
Peralta made it 5-0 when he led off the third with a drive to left, his team-leading 10th.
Hutchison (4-4) allowed five runs and six hits in three innings, his shortest start of the season. He walked one and struck out one.
Hutchison is 1/3 with an 8.72 ERA in five home starts and 3-1 with a 2.03 ERA in eight road starts.
Garcia had not walked a batter in four previous starts this season, but issued a pair in the first inning, with Melky Cabrera and Edwin Encarnacion both drawing free passes. Garcia struck out Brett Lawrie to strand both runners.
An infield single by Jose Reyes, a passed ball and a fielding error by Carpenter gave the Blue Jays runners at the corners with two outs in the fifth, but Garcia struck out Jose Bautista swinging.
Bautista drew his ML-leading 50th walk in the eighth. ... Cardinals 2B Kolten Wong (left shoulder) missed his third straight game. ... The roof was open when the game began but started to close in the second inning. ... St. Louis is off Monday before opening a three-game series at Tampa Bay on Tuesday. RH Adam Wainwright (8-3) will face Rays RH Jake Odorizzi (2-6). ... Toronto begins a three game series against Minnesota on Monday. Twins RH Ricky Nolasco (4-5) faces Blue Jays RH R.A. Dickey (6-4).
45,726 (92.8% full) - % is based on regular season capacity
60 degrees, overcast
Home Plate - Manny Gonzalez, First Base - Jim Reynolds, Second Base - Seth Buckminster, Third Base - Fieldin Culbreth
The Cardinals have 2 HR today (so far) after hitting 1 yesterday. It's the first time they've homered in consecutive games since May 7-9, snapping a 26-game stretch in which they didn't homer in back-to-back games.
Drew Hutchison has held hitters to a .301 on-base percentage against his fastball this season, which is fifth-best in the National League. Jhonny Peralta has a .306 on-base percentage against fastballs in 2014, which is 59 points below the league average among qualified batters.
DH Holliday (back stiffness) scratched before the game