After Vizquel's hit, the White Sox made it 4-1 on a throwing error by catcher Victor Martinez and a single by Alexei Ramirez off Josh Beckett.
Beckett (6-6) went six innings for the Red Sox, who were eliminated from postseason contention on Tuesday. He gave up four runs on 11 hits, struck out five and walked four.
Garcia (12-6) lasted into the eighth and gave up 2 earned runs on four hits. Garcia threw to two batters in the eighth. He gave up four hits, walked none and struck out one.
The right-hander was making his 28th start of the season and first since being sidelined with lower back stiffness on Sept. 7.
Matt Thornton got the last four outs for his eighth save in 10 chances.
David Ortiz looped an RBI single to left against a shift in the fourth inning to make it 1-0 and tie Adrian Beltre for the team lead with 102 RBIs.
In the bottom of the fourth, A.J. Pierzynski tied it at 1 with a solo homer.
J.D. Drew's bid for a go-ahead homer in the sixth was caught at the right-field wall by Alejandro De Aza.
Boston's Mike Lowell got one run back when he led off the eighth with his fourth home run of the year.
Chicago answered with a run on Juan Pierre's double-play grounder.
NOTES
Beckett had won two of his last three starts entering Wednesday, including a 10-8 decision at the Yankees on Sept. 24. … White Sox RF Carlos Quentin robbed leadoff batter Marco Scutaro of an extra base hit to open the game. Scutaro lined Freddy Garcia's fourth pitch into right-center, but Quentin timed a perfect dive to make the catch. … In the second inning, Ortiz tried to catch the White Sox in their shift and laid down a bunt, but he was thrown out.