Dalton Easton's 23-yard pass to McCray gave the Bulldogs (8-1, 4-0 Northeast Conference) the lead for good at 20-14 lead with 10:57 left in the second quarter.
Easton finished 15 of 25 for 204 yards, three touchdowns and an interception. McCray had 27 runs for 117 yards and five catches for 75 yards.
Paul Canevari added nine carries for 78 yards for the Bulldogs, and Bryant outrushed Duquesne 245-96.
David Thomas had six catches for 96 yards for the Dukes who tied the Bulldogs at 7- and 14-all, but never led in the game.