Adam LaRoche drove in three runs for the White Sox, winners of seven of 10 - including three straight on the road.
Oakland missed a chance to tie the game when Stephen Vogt was thrown out trying to score on Coco Crisp's two-out double in the ninth. Vogt rounded third and was caught in a rundown before being tagged out by White Sox catcher Geovany Soto.
Scott Carroll (1-1) pitched two innings to pick up the win. Zach Duke got the last four outs for his first save since 2011.
Josh Reddick had three RBIs for Oakland.
Francisco Abad (0-2) allowed a two-run single to LaRoche in the seventh, and LaRoche scored the go-ahead run on Garcia's double off Evan Scribner.
Copyright 2015 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.