Brandon Phillips hit his first home run in August and Jay Bruce added a two-run shot as NL Central-leading Cincinnati regained a seven-game lead over second-place St. Louis, which rallied to win the series opener 8-5 on Friday night.
Cincinnati built a 4-1 lead with three runs in the sixth inning. Phillips led off with a double down the right-field line and advanced on Ryan Ludwick's single to right. Phillips scored when Todd Frazier beat out a potential double-play grounder, and Bruce followed with a 432-foot drive to right for his team-best 27th homer.
Garcia was disappointed with the call on Frazier's bouncer.
"It seemed to me that he was out," Garcia said. "I was a little frustrated but it wasn't the reason I gave up the home run. The pitch was up. I felt good coming into the sixth."
Garcia (3-5) allowed four runs and seven hits in six innings. He entered with a 7-1 record and a 3.12 ERA in nine career starts and two relief appearances against the Reds.
"Garcia was pretty good," manager Mike Matheny said. "He showed some swing-and-miss stuff until he got to Bruce. He's pretty good about keeping his emotions in check. When you show frustration, you give them an advantage in my opinion."
Phillips and Ryan Ludwick had three hits apiece for Cincinnati, which finished with 12 overall.
Mike Leake (6-8) allowed at least one hit in every inning except one, but kept the Cardinals mostly at bay. Leake, who also had two hits, lasted 6 2-3 innings, allowing 10 hits and two runs.
The Reds added four more runs in the seventh after Brandon Dickson retired the first two batters of the inning.
Phillips drove a full-count pitch just over the wall in right-center for his 14th homer and first since July 31 against San Diego. Scott Rolen's two-run single made it 7-2, and Dioner Navarro chipped in with an RBI single that dropped into left when Matt Holliday lost the ball in the sun.
"Any win is important," Phillips said. "Just getting hits is important and everybody fed off that."
The Reds grabbed the lead in the third against Garcia, making his second start since June 5 after missing 64 games with a left shoulder strain. Leake hit a leadoff double and scored on Phillips' two-out single into right field.
The Cardinals got one hit in each of the first four innings against Leake before finally pushing across a run in the fifth. Tony Cruz, Rafael Furcal and Jon Jay singled to load the bases with one out, setting up Matt Carpenter's tying sacrifice fly.
Garcia failed to get a bunt down in front of Jay's single.
"That was a big play," Matheny said. "Jay's hit could have scored two runs. That's how you have to look at it."
St. Louis added another run in the seventh when Cruz scampered home on Jay's double-play ball.
The Cardinals, trying to stay in the NL Central race and win a wild-card spot, have one more game in Cincinnati before taking on Pittsburgh on the road.
"We have a tough road trip," Matheny said. "We are very clear on our mission. We have to play good baseball every night."
NOTES: Matheny said RHP Joe Kelly will start on Wednesday in Pittsburgh in place of RHP Lance Lynn, who hasn't lasted more than five innings in any of his last four starts. Lynn pitched two-plus innings in St. Louis' win on Friday. ... Cardinals C Yadier Molina and 3B David Freese were out of the lineup due to injuries. Molina rolled an ankle a few days ago, Matheny said. Freese injured his left wrist fielding in a play at third base on Friday. ... The Great American Ball Park flags in left-center field were lowered to half-staff to honor the memory of astronaut Neil Armstrong, the first man to walk on the moon. Armstrong passed away earlier Saturday.