Mendoza completed 23 of 30 passes for 218 yards and a touchdown without an interception. Allen caught 10 passes for 99 yards, including the 5-yard touchdown that opened the scoring. Their connection on the last possession gave the Yellow Jackets enough intermediate gains to reach Maddox's finishing run.
Maddox's earlier scores had built the cushion Duke erased. He scored from 5 yards in the second quarter, then broke loose for a 60-yard touchdown with 10:29 left in the third. That run made it 21-10 and accounted for most of his rushing yardage, while Justice Haynes supplied another 69 yards on 14 carries.
Duke responded with Walker Eget's 8-yard touchdown pass to Jared Richardson and a successful two-point conversion, closing to 21-18. Sheppard then put the Blue Devils ahead late. He finished with 99 rushing yards, two rushing touchdowns and seven receptions for 91 yards, keeping Duke dangerous through both phases of its offense.
Eget completed 26 of 41 passes for 259 yards and a touchdown. Duke gained 418 yards to Georgia Tech's 383 and converted 10 of 17 third downs. Both teams avoided turnovers, leaving late execution and the kicking game to decide a contest in which the Blue Devils also held the ball for more than 35 minutes.
Georgia Tech visits Virginia Tech next Saturday. Duke returns home for North Carolina, carrying its first loss into the rivalry after a final-minute recovery fell one field goal short.