Heinicke threw two touchdown passes to Zach Pascal in the second quarter, including an 18-yard score in the final minutes of the first half, to give Old Dominion a 28-7 lead.
Gerard Johnson carried the ball 22 times for 137 yards with a 31-yard touchdown for Old Dominion. Pascal caught eight passes for 99 yards.
Hampton running back Jorrian Washington caught a 75-yard touchdown pass with 13:13 left in the fourth quarter to cut the lead to 13. Hampton then recovered an onside kick, but Jaylian Williamson fumbled on the ensuing drive and gave the ball to Old Dominion with 8:37 left in the game.
Williamson threw for 407 yards and three touchdowns in the loss.