Duncan's first clout, a three-run shot in the sixth, put the Indians up 7-1 and he added a two-run shot in the eighth to salt the victory away.
Asdrubal Cabrera added a two-run double to help the Tribe take the rubber match of the three-game series. Lou Marson went 3-for-4 with a run scored for the Tribe, who entered the game in second place, 6 1/2 games behind Detroit in the American League Central.
Jeanmar Gomez (2-2) earned the win with 5 1/3 innings, during which he yielded only one run on six hits and three walks. He fanned two.
Reliever Frank Herrmann, however, yielded run-scoring hits to Eric Hosmer and Johnny Giavotella in the ninth before Chris Perez came in and got the final two outs for his 32nd save.
Kansas City's Jeff Francis (5-15) surrendered four runs on nine hits before exiting after five frames.