Justin Thomas leads Jackets over Duke

Georgia Tech senior QB Justin Thomas (5) sets up for a handoff in the first half of the game Saturday, October 29, 2016. SPECIAL/Daniel Varnado

Georgia Tech senior QB Justin Thomas (5) sets up for a handoff in the first half of the game Saturday, October 29, 2016. SPECIAL/Daniel Varnado

At the end of an afternoon of seismic momentum shifts and big plays, Georgia Tech claimed victory over Duke at Bobby Dodd Stadium on Saturday — barely. After giving up a three-touchdown halftime lead, the Yellow Jackets scraped out a 38-35 win over the Blue Devils at Bobby Dodd Stadium.

The Jackets rallied for their game-winning touchdown with 3:11 to play, a 21-yard pass from quarterback Justin Thomas to A-back Clinton Lynch, the capper on a six-play, 86-yard play drive. The drive was aided by a 46-yard scramble by Thomas on a 2nd-and-19 from the Tech 5-yard line in which he was chased out of the end zone.

The touchdown drive answered a Duke touchdown — a 7-yard touchdown reception by tight end Daniel Helm — that gave the Blue Devils a 35-31 lead with 8:55 to play. Tech had led 28-7 at halftime.

Thomas played perhaps the greatest game of his career, finishing the game with 459 yards of total offense, two touchdown passes and two scoring runs. Thomas was 10-for-14 for 264 yards and ran 17 times for 195 yards.

His last big play sealed the game for the Jackets, when he scrambled for a 50-yard gain to convert a 3rd-and-17 at the Tech 21 with a little over two minutes to play.

Tech (5-3 overall, 2-3 ACC) escaped a game in which the Jackets gave up 559 yards of offense by forcing two turnovers and gaining possession with two fourth-down stops. Duke (3-5, 0-4) had beaten the Jackets the past two meetings.