Suppan (10-14), who had not won since Sept. 4, was brilliant over seven innings, allowing just an unearned run and four hits. He was given two runs before even taking the mound and then retired 12 straight from the final out of the first through two batters of the fifth.
After the Tigers scored a pair of runs against Cory Bailey in the eighth, Roberto Hernandez recorded the final five outs for his 28th save in 34 chances.
Beltran, who was four for five, opened the scoring in the first with an RBI triple and Mike Sweeney's run-scoring single made it 2-0. The Kansas City outfielder also singled home a run in the eighth, pushing the Royals' lead to 3-1.
Kansas City scored four times in the eighth to break open the game, including RBI singles by Raul Ibanez and Dee Brown and a bases-loaded walk to Mark Quinn issued by Luis Pineda, who gave up two runs while only working a third of an inning.