Anthony Gose led off the ninth with a double to right against Yohan Pino (0-1). Kinsler then laid down a bunt in between third base and the mound that Pino fielded, but his off-balance throw snuck past first base and into foul territory, allowing Gose to race home for the deciding run.
The win overshadowed a poor outing from Tigers ace David Price, who allowed five runs -- four earned -- on 13 his over 6 1/3 innings.
Kansas City's Yordano Ventura, in his first start since serving a seven-game suspension, allowed four runs on eight hits over six innings of work. All four came in the second inning.
A four-pitch walk to J.D. Martinez to start the frame was followed up three straight singles, none of which were hit very hard, from the bottom of Detroit's lineup. Andrew Romine knocked in a pair of runs with his poke to right.
Gose reloaded the bases for Kinsler, who plated another two runs with a single to right. Ventura didn't record an out in the inning until Miguel Cabrera's double-play liner to shortstop, and he got out of the inning with a Victor Martinez fly to left.
Kansas City got it all back in the fourth. Salvador Perez made up for two poor efforts trying to tag out runners at the plate in the second inning with a two-run homer that cut the deficit in half.
Former Tiger Omar Infante then doubled and scored on Christian Colon's base knock. Colon scored to tie the game later in the frame when Nick Castellanos' routine throw to first sailed past the bag.
Price's final batter in the seventh was Alex Gordon, who gave the Royals a brief lead with an RBI single to center.
Jason Frasor relieved Ventura and inherited that 5-4 lead, but couldn't hold it. He put two on base before giving way to Ryan Madson, who allowed Gose to score after Victor Martinez grounded into a force out.
Joakim Soria (2-0) earned the win after pitching a 1-2-3 top of the ninth.
Kansas City had won its previous nine season openers ... The Tigers were without catcher Alex Avila (forearm) and shortstop Jose Iglesias (groin) ... KC shortstop Alcides Escobar returned from a seven-game absence (concussion) and had two hits ... Gordon and Lorenzo Cain had three hits apiece for the Royals, who had 14 as a team.