It was the sixth straight quality start for Boyd, who allowed two runs and five hits in seven innings. He walked one. Joe Jimenez struck out two in a perfect eighth.
Shane Greene allowed a solo homer to Jorge Soler in the ninth, but he was able to close the game out for his American League-leading 13th save in 13 chances. Greene retired Martin Maldonado on a popup with the tying run on second to end it.
Jorge Lopez (0-3) settled down nicely after a tough first inning. He allowed four runs and five hits in seven innings.
Miguel Cabrera hit an RBI single in the first, giving the Tigers a 1-0 lead before Lopez had gotten an out. Another run came home when Ronny Rodriguezgrounded into a force play, and Rodriguez scored on a wild pitch, sliding in safely on a close play at the plate.
Rodriguez added an RBI double in the third, and Boyd kept the Royals off the scoreboard until the fourth, when Soler hit a sacrifice fly and Kelvin Gutierrezfollowed with a run-scoring triple.
Boyd (3-2) worked out of that jam with back-to-back strikeouts, and the Tigers held on from there to improve to 4-0 on the season against Kansas City.
Cabrera had three singles for Detroit.
Royals: Kansas City sends RHP Homer Bailey (2-3) to the mound Saturday against the Tigers. Bailey turned 33 on Friday.
Tigers: Detroit RHP Tyson Ross (1-3) was activated from the paternity list Friday and will start Saturday's game.