Carpenter's sixth homer made a winner of Tyler Alexander (2-1), who tossed two scoreless innings and recorded four strikeouts. Alex Lange got the last three outs for his 11th save.
Jake Rogers contributed two hits, two runs and two RBIs for the Tigers, who have won four of their last five games
Maikel Garcia had a two-run home run and Bobby Witt Jr. hit a solo shot for Kansas City.
Detroit starter Reese Olson gave up four runs (three earned) and six hits in six innings. He also struck out eight while throwing 100 pitches. Kansas City starter Jordan Lyles was charged with three runs and six hits in six-plus innings.
The Royals had runners on the corners in the third on singles by Nicky Lopez and Drew Waters. Olson got out of that jam when Nick Pratto bounced into a double play
Olson wasn't so fortunate in the next inning. Witt led off the fourth with a 442-foot homer to left center. MJ Melendez drew a walk and Garcia smashed a two-out homer over the left field wall to make it 3-0.
Pratto hit a two-out double in the fifth and scored when Witt reached on an infield single and Tigers shortstop Zack Short made a throwing error
Detroit got on the board in the bottom of the inning. Rogers had a one-out single and scored on Zach McKinstry's two-out double to left.
Kansas City's lead evaporated in the seventh. Lyles' night ended when Miguel Cabrera led off with a single and Jonathan Schoop doubled to put runners in scoring position.
Taylor Clarke (1-1) entered and gave up a two-run single to Rogers. McKinstry drew a one-out walk and, with two outs, Carpenter lined a changeup just inside the right field foul pole to give Detroit a 6-4 advantage.
The Royals had runners on the corners with one out in the eighth. Alexander snuffed out that threat with a strikeout and a groundout
--Field Level Media