Garcia (3-1) gave up one run on seven hits, struck out three and did not walk a batter. The left-hander improved to 7-0 in eight starts against Cincinnati at Busch Stadium and is 9-2 overall against them. He retired the last seven batters he faced and recorded 18 ground ball outs.
Edward Mujica struck out the side in the ninth for his fifth save in as many chances.
Bronson Arroyo (2-3) allowed two runs on six hits over seven innings for the Reds, whose win streak ended at three games. Arroyo has had four quality starts in six outings this season.
Holliday drilled a line drive over the left-field wall in the sixth inning, his third homer of the season. Carlos Beltran, who had three hits for the Cardinals, had singled with one out before Holliday went deep.
The Cardinals managed just one run in their previous 23 innings prior to the homer.
Cincinnati took a 1-0 lead in the fifth on a run-scoring double by Shin-soo Choo, who has reached safely in 26 of 27 games this season. He brought in Derrick Robinson with a drive off the left-field wall. Choo broke out of a 2-for-20 skid with the double, his eighth of the season.
NOTES: Cardinals RHP Lance Lynn (4-0, 3.10 ERA) will face Homer Bailey (1-2, 2.81) in the series finale. Lynn has a nine-game winning streak dating to Sept. 9 - the longest current run in the majors. ... By Thursday's scheduled off day, the Reds will have played a game for 20 consecutive days. ... Cincinnati has made nine errors in the last nine games after just five in the first 19 contests. ... St. Louis INF Daniel Descalso broke out of a 0-for-18 slump with a seventh-inning single. INF David Freese is 0 for 16 and has not hit a ball out of the infield in his last 13 trips to the plate. ... Cardinals C Yadier Molina broke a 0-for-19 skid against Arroyo with a second-inning single.
Link to box score: St. Louis 2, Cincinnati 1
Link to game discussion at The Cardinal Nation message board