Duncan came on to pinch-hit for Omir Santos after Cannizaro's single one batter earlier scored Erubiel Durazo to tie the game at two.
Cannizaro went 3-for-4 and drove in Durazo with a single in the second as well, while Angel Chavez and Justin Christian each chipped in with two hits for the Yankees (53-42).
Sean Henn (1-2) allowed one hit in two scoreless frames to pick up the win. Jim Brower allowed three hits and struck out one in a scoreless ninth to notch his 18th save.
Scranton/Wilkes-Barre starter Steven White allowed two runs, five hits and a walk and struck out three in six innings.
Jonah Bayliss (1-2) blew a save and suffered the loss, giving up two runs, two hits and a walk in 1 1/3 frames. Indianapolis starter Michael Tejera surrendered one run on eight hits while walking two and whiffing two in 7 2/3 innings.
Brian Bixler collected three hits and Michael Ryan blasted a two-run homer, his eighth, in the first inning to provide all the scoring for Indianapolis (49-47), which has lost nine of its last 10.