Victor Martinez lifted a sacrifice fly in the eighth inning to snap a tie and help Detroit end Kansas City's six-game home and overall winning streaks.
Don Kelly recorded two hits and an RBI while Max Scherzer pitched seven strong innings to remain unbeaten for the Tigers, who have won five of six.
Scherzer (9-0) allowed two runs and three hits with two walks and six strikeouts. The right-hander has yielded a total of eight runs in his last five starts.
Detroit built a 2-0 lead before Kansas City forged a tie in the fifth on David Lough's leadoff homer and an RBI single by Alcides Escobar. The Tigers went ahead for good in the eighth as leadoff hitter Miguel Cabrera was hit by a pitch from Aaron Crow (2-2), advanced to third on Prince Fielder's single and scored on Martinez's sacrifice fly.
The Royals threatened against Jose Valverde in the ninth, getting the tying run to second base with none out. Valverde escaped the jam, retiring the next three batters to notch his ninth save in 11 opportunities.