Garland went seven innings giving up one run on seven hits and improved to 15-and-5 in 28 career starts against the Royals.
Paul Konerko hit his 15th homer for the Sox who closed out a 6-and-1 road trip.
John Thomson took the loss after giving up two runs on seven hits over three and two-thirds innings.
Bobby Jenks worked the ninth for his 22nd save.