Cunningham threw for five touchdowns - each to a different teammate -- and ran for two more scores. He racked up 303 passing yards and 224 rushing yards.
[Ads /]
He's the second Football Bowl Subdivision player with at least 300 passing and 200 rushing yards in a game. He sat out the final 12 minutes after 11 carries and 18-for-25 passing.
Louisville (6-5, 4-4 Atlantic Coast Conference) has won consecutive ACC games for the first time since November 2019.
Cunningham's second-quarter rushing touchdowns went for 44 and 72 yards.
By the time it was 28-6, Cunningham had 163 rushing yards and 156 passing yards. Duke had 133 yards total.
Duke (3-7, 0-7) has lost seven consecutive games, all except one by at least 25 points.
[Ads /]
Quarterback Gunnar Holmberg, who missed the previous 1- games with an upper-body ailment suffered in the first half Nov. 6 against Pittsburgh, threw for 176 yards before exiting after one third-quarter series.
Duke's Charlie Ham kicked first-half field goals of 22, 28 and 26 yards. The Blue Devils failed to score a first-half touchdown for the fourth time in their last five games.
The Blue Devils have yielded at least 45 points in each of their last five games. They're assured of a last-place finish in the ACC's Coastal Division.
They'll end the season on Nov. 27 at home vs. Miami.