Garland limited Kansas City to four hits in 8 1/3 innings as the Sox beat Kansas City 5-1 to extend their winning streak to six games and their lead in the AL Central to nine gamesthe largest margin in the majors.
Garland became the majors' first 12-game winner while equaling his season high in victories set in three previous seasons and lowering his ERA to 3.40.
"I just want to keep going and get better," Garland said.
Manager Ozzie Guillen was showered with boos when he pulled Garland, who received a lengthy ovation.
"I hope he wins 30," Guillen said. "That will be my first Cy Young Award winner."
Three of Garland's 12 victories have come at the expense of Kansas City. But Garland has shown a marked improvement against the AL Central, going 5-0 against division foes this season after a 23-21 mark entering the season.
This marked the 13th time Garland has pitched at least six innings this year and the 10th time he has allowed three runs or fewer.
With the Sox (48-22) altering their starting rotation with two off-days coming up in the next six days, Garland is projected to have three more starts before the All-Star break.
His last start would land on either July 6 or July 8, giving AL manager Terry Francona of Boston the option of having him start the All-Star Game on July 12 in Detroit.
The American and National league rosters will be announced July 3.
The Royals were limited to one hit through the first six innings and Garland had a shutout until Terrence Long hit his first pitch of the ninth over the right-field fence.
Garland threw his signature changeup with confidence and ease in improving to 7-0 at U.S. Cellular Field this season. He pitched without any residue from his last start, when he was tagged for six runs (including three home runs) in six innings in a 12-6 comeback victory over Arizona.
The defense gave Garland an assist. Second baseman Tadahito Iguchi made a diving stop and threw on his knees to retire Long in the third.
Pablo Ozuna, a late insertion because shortstop Juan Uribe suffered a stiff back during batting practice, showed his range by breaking to cover second, then retreating to field and retire Long to end the sixth.
"[Ozuna] has been sitting for two weeks and all of a sudden he comes out and it seems like he has been playing every day," Guillen said. "We were making fun of Uribe, telling him he better hurry up."
The Sox had averaged 6.9 runs in Garland's previous 13 starts, but he didn't receive a cushion until the fifth inning because Zack Greinke (1-8) was just as effective.
The Sox got a break in the fifth when Royals first baseman Matt Stairs tried to make a backhanded stop that deflected off his glove and allowed A.J. Pierzynski to score the first run. Scott Podsednik followed with his third single to score Joe Crede.
The Sox won despite not getting an extra base hit for the first time in 43 games.
The Sox improved to 8-0 over the Royals this season. They're 22-5 against the AL Central and 25-10 against the AL. They have a chance to sweep the Royals for the third time in Wednesday's finale against rookie J.P. Howell (1-1), who was pitching for the University of Texas at this time last year.