Patterson, who threw for 187 yards on 18-of-26 passing, connected with Gianni Carter on an 18-yard strike to give the Dukes (1-1) a 10-7 lead.
On Duquesne's next possession, McCoy capped off a 9-play drive with a with a 7-yard touchdown to put the game away for good. The junior running back recorded 46 of the Duke's 80 yards on the drive.
McCoy, who averaged 125.6 yards per game last season, tallied his 20th 100-yard rushing game and needs 606 yards to become Duquesne's all-time leading rusher.
The win marked Duquesne's eighth straight win at home.
Dayton (0-2) has lost five of its last six matchups against Duquesne.
Will Bardo led Dayton with 232 yards passing.