Garcia (4-6) padded his win total for the first time since May 16 by allowing one unearned run on nine hits in the Cardinals' third win in their last four outings.
David Freese and Daniel Descalso had two hits and an RBI apiece to lead the Cardinals' 10-hit attack. Skip Schumacher had an RBI single and scored a run in the 3-run St. Louis second.
Rookie Matt Harvey (3-4) took the loss in a five-inning start. He allowed three runs on six hits and struck out four.
Aaron Carter is still in love with Hilary Duff
Millions of Getty images now available for free via embed tool