Cabrera has been slowed by a strained lower abdomen, injured hip and banged-up left leg, but he was healthy enough to take a victory lap.
Joaquin Benoit (3-0) gave up only one walk in the ninth for the win.
Prince Fielder hit a tiebreaking solo homer in the seventh inning and made a good defensive play for the third out of the ninth.
Aaron Crow (7-4) threw five pitches, with Cabrera hitting his 3-1 offering for an opposite field homer, his 39th.
Kansas City tied the game for a third time in the eighth inning when Emilo Bonifacio singled, stole second, advanced on a throwing era by Detroit's backup catcher and scored on Chris Getz's RBI single off Jose Veras.
Detroit starter Doug Fister gave up three runs and 10 hits over 6 1-3 innings. After throwing a season-high 118 pitches, he was replaced by Drew Smyly, who gave up a game-tying homer to Salvador Perez on a 1-2 count with two outs in the seventh.
Kansas City starter Wade Davis allowed four runs on eight hits and lasted just 3 2-3 innings.
Tigers manager Jim Leyland and catcher Brayan Pena were ejected in the fourth inning after a call went against Detroit and helped Kansas City tie the game.
The Tigers were angry because Kansas City's Alcides Escobar appeared to foul off a pitch with a check swing after the ball hit the dirt. The umpiring crew, though, ruled that it was a wild pitch and that allowed Chris Getz to advance from first to third base.
Leyland was ejected and went on the field a second time, directing a demonstrative rant toward first base umpire Bob Davidson.
After Escobar hit a game-tying double, Pena had more to say about the call and was tossed by plate umpire Mike Muchlinski.
In the home half of the inning, Cabrera put Detroit ahead 4-3 with his 24th double and 116th RBI on a hit deep into the right field corner, but barely beat the throw to second base. The reigning Triple Crown winner, though, would rather play through pain than sit and hope to get healthier.
In the first inning, Cabrera hit a grounder to third that Mike Moustakas bobbled into foul territory but still managed to throw Cabrera out.
Prince Fielder hit the next pitch for an RBI single and Victor Martinez followed with another run-scoring single to give Detroit a 2-0 lead.
The Tigers took a 3-0 lead in the second on a squeeze play with Omar Infante running home on a pitch that Jose Iglesias perfectly bunted for an infield single.
Kansas City scored two in the third inning on consecutive singles by Alex Gordon and Salvador Perez and tied it in the fourth after the disputed call that led to Leyland and Pena being ejected.
The Royals tied the game for the second time with Perez's fifth homer in the seventh and Fielder's line drive over the right-center wall - his 19th homer, and second of the series - put Detroit back ahead by a run.
Tejada will not be back in baseball any time soon, if at all.
He became the third former MVP in a month to be suspended, getting suspended for 105 games. His ban came after Yankees slugger Alex Rodriguez was suspended for 211 games and Brewers star Ryan Braun got a 65-game penalty that will keep him off the field for the rest of the season.
A person familiar with the situation told The Associated Press that Tejada tested positive for Adderall, a substance the 39-year-old has used to treat Attention Deficit Disorder. The person spoke to the AP on condition of anonymity because those details were not made public.
Tejada apologized in a statement released by the players' association, saying he made a mistake for taking a medication to treat a medical condition while re-applying for an exemption to use it. Tejada, who was already on the 60-day disabled list with a calf injury, previously tested positive under the league's amphetamine policy. That subjected him to a 25-game ban for a second test and an 80-game suspension for a third.
NOTES: Moustakas played for the first time since leaving a game Monday with an injured left calf and Jamey Carroll pinch hit for him in the seventh. ... Before throwing out the ceremonial first pitch, NASCAR driver Kasey Kahne chatted about racing with Tigers right-hander Justin Verlander, who said he has taken laps at Richmond International Raceway in his own car.
AP Sports Writer Dave Skretta in Kansas City, Mo., contributed to this report.
Follow Larry Lage on Twitter: http://twitter.com/larrylage