DURHAM, N.C. -- A near-perfect T.J. Yates threw three touchdown passes, and Trimane Goddard intercepted a pass in the closing seconds to seal North Carolina's 28-20 victory over Duke on Saturday night.
Shaun Draughn rushed for 110 yards and a touchdown and caught another score from Yates to help North Carolina (8-4, 4-4 Atlantic Coast Conference) snap a two-game losing streak and beat the Blue Devils (4-8, 1-7) for the 18th time in 19 years.
Thaddeus Lewis led Duke into the red zone in the final minute before his fourth-down pass went straight to Goddard at the 4.
Yates completed 15 of his first 16 passes and finished 15-of-19 for 190 yards with scoring passes covering 11 yards to Draughn, 25 yards to Hakeem Nicks and 32 yards to Richard Quinn. He won as a starter for the first time since Sept. 11 at Rutgers after after missing five games with a broken left ankle suffered a week later against Virginia Tech.
Lewis finished 34-of-49 for 278 yards with an 8-yard touchdown pass to Eron Riley. Vincent Rey returned a fumble 36 yards for a score for Duke, which ended David Cutcliffe's first season with five straight losses after starting 4-3.
The Blue Devils have lost five straight in the rivalry for the Victory Bell, the rolling trophy that is annually spray-painted with the winning team's shade of blue.
One possession after Duke made it a one-point game, Yates helped the Tar Heels retain ownership of the trophy when he faked a handoff, rolled right and hit a wide-open Quinn in stride. The tight end rumbled -- and then spun -- into the end zone with 1:16 left in the third.
North Carolina -- which was favored by a touchdown -- didn't take its first lead until late in the second quarter, when Yates put the Tar Heels up 21-14 with a deep ball to Nicks.
The receiver pulled in the ball behind Glenn Williams near the back of the end zone for his school record-tying ninth TD catch. Nicks finished with three catches for 38 yards and became the school's first player with 1,000 yards receiving in a season.
Duke closed to 21-17 at halftime on Joe Surgan's career-long 55-yard field goal on the final play, then made it 21-20 on Nick Maggio's 27-yard kick on the first series of the second half.
Rey's big play came early in the first quarter when Draughn couldn't grasp a handoff and the Duke linebacker snatched it out of midair and dashed through the North Carolina offense for his second score off a fumble this season.
Lewis was perfect on five attempts on the game's opening drive, and his 39-yard swing pass to Jay Hollingsworth set up the scoring pass to Riley that gave the Blue Devils an early lead.
Draughn helped the Tar Heels answer, carrying six times on the ensuing possession with his 30-yard run through the left side setting up his 4-yard burst that tied it midway through the first. His 11-yard touchdown catch from Yates late in the first made it 14-all.
Miami has lost running back Gus Edwards for the entire season because of a left foot injury.
Virginia Tech will wear a decal on its helmets against No. 1 Ohio State on Monday night to honor slain Roanoke television journalists Alison Parker and Adam Ward.
South Carolina football players will wear stickers on their helmets this season to honor the nine people who died in a shooting at Emanuel AME Church in Charleston this past June.
Washington has found its starting quarterback, but coach Chris Petersen said the Huskies will keep that information under wraps until Friday's season opener at No. 23 Boise State.
Joey Counts scored on a 1-yard run on fourth-and-goal with 2 seconds left to give Montana a 38-35 victory over four-time defending FCS champion North Dakota State on Saturday.
Transfer Vernon Adams will be the starting quarterback when Oregon begins its season against Eastern Washington on Sept. 5.