Still, Duke held on for the 31-28 victory as Maalik Murphy threw for 332 yards with three touchdowns and three interceptions.