The 24-year-old left-hander threw a three-hitter for his first career shutout, and first outing longer than seven innings, in a 9-0 victory over the San Francisco Giants on Sunday.
The Cardinals have been babying Garcia along after he pitched only 37 2/3 innings last season in the minors coming off elbow reconstruction surgery. Learning from experience, Garcia said he didn't peek at the scoreboard to check his pitch count.
"I'm doing a lot better at that, not thinking about things like that," Garcia said. "That gets you out of the game. Just focus on the next pitch you're going to make and that's it."
St. Louis knocked out Barry Zito in the fourth inning, rebounding from a five-game losing streak to take two of three from the Giants.
During the game the Giants were awarded outfielder Cody Ross on a waiver claim from Florida.
"Long day for the guys out there," manager Bruce Bochy said. "You can't let a game or two get you down. We're headed home. We hope to play better."
Garcia (11-6) was razor sharp working on regular rest after getting two extra days the previous two outings, facing one batter over the minimum while striking out six. He did not walk a batter and needed only 89 pitches. Prior to Sunday, he had never pitched in the eighth.
When Garcia came to the plate in the bottom of the eighth, he got a standing ovation. He made one of the best defensive plays to start the ninth, snaring Juan Uribe's hot comebacker.
"It's a great feeling when I was hitting and all the people were standing, and when I was on the mound," Garcia said. "I think this is the greatest day of my baseball career."
Pat Burrell singled leading off the second and fifth and each time he was quickly erased on double-play balls by Jose Guillen. Nate Schierholtz singled with two outs in the ninth before Garcia finished it by getting Aaron Rowand to ground out.
Garcia hasn't allowed an earned run his last two starts, giving up three unearned runs in six innings in a 3-2 loss to the Brewers on Tuesday. Garcia, who leads NL rookies in victories, lowered his ERA to 2.42
Zito (8-8) lasted only 3 2/3 innings, his shortest outing since June 15, 2009, against the Angels, surrendering five runs on seven hits. He handled the Cardinals the first time through the order, allowing only a hit and a walk, but the second time around the Cardinals were 5 for 7 with a walk and sacrifice fly.
Zito has won only one of his last 13 starts and is 1-5 against the Cardinals. He's allowed at least one homer in six of the last seven starts, totaling nine.
"Tough out there," Zito said. "Speaking for myself, I'm not going out there giving the team a chance to win."
Albert Pujols, Matt Holliday and Felipe Lopez had an RBI apiece in the third. Craig had been 2 for 18 on the homestand before hitting his second homer in the fourth for a 5-0 lead, and Garcia singled and scored in a three-run fifth that included RBIs from Molina, Ryan and Jay.
Craig, who's batting .191 after going 2 for 5, matched his career best of three RBIs on a bloop single in the eighth.
"I know the numbers aren't there right now, but I feel OK and I'm just going to keep battling," Craig said. "I'm confident things will turn around."
Joe Cunningham, who played with the Cardinals in the 1950s and later served in the front office, was honored in a pregame ceremony. ... The Cardinals moved Garcia ahead of Lohse, who'll start Monday in Pittsburgh. Lohse is 4-0 with a 2.14 ERA against the Pirates. ... New Cardinals 3B Pedro Feliz snared Buster Posey's liner down the line to end the first and assisted on the other two outs in a perfect first for Garcia. ... SS Uribe returned to the Giants' lineup. He fouled a ball off his left foot and missed two games. ... Cardinals manager Tony La Russa has batted the pitcher ninth the last two games, both victories.