Johnson became the third Miami player to reach 4,000 all-purpose yards, plus passed Graig Cooper for the No. 5 spot on the Hurricanes' all-time rushing list. Kaaya completed 20 of 34 passes for 223 yards, and Miami (3-2, 1-1 Atlantic Coast Conference) won for the 11th time in its last 12 home games.
Shaquille Powell ran for 58 yards and a touchdown for Duke (4-1, 0-1). The Blue Devils saw their school-record-tying 12-game regular season winning streak snapped, and quarterback Anthony Boone lost for the first time in 15 career starts outside of postseason play.
Herb Waters and Joe Yearby caught touchdown passes for Miami.
The Hurricanes' defense — shredded by Duke last year, and shredded by Nebraska last week — set the tone early, holding the Blue Devils to 17 yards in the first quarter and thwarting them just about all night long.
Since the start of last season, Duke averaged 441 yards and 35 points per game. The Hurricanes held the Blue Devils to 264 yards, held them 17 times in 19 chances on third- and fourth-downs and became the second program — Florida State being the other — to keep Duke to 10 points or less in its last 36 games.
Boone completed 22 of 51 passes for 179 yards, with two interceptions.
Strong rain started to fall in the third quarter, so much that it was tough to see from one side of the field to the other — and tougher still for some to corral a wet football. A third-down pass from Kaaya skipped off the hands of tight end Clive Walford and deflected again off Duke safety Deondre Singleton — who nearly had an interception.
Miami took advantage of the second chance. Electing to keep the offense on the field instead of trying a long field goal in the rain, Miami gave Kaaya a shot at the end zone on fourth down, and he delivered — with Waters getting a foot down while hauling in a 28-yard catch for a score, and the Hurricanes had a 16-7 lead.
Duke got a 33-yard field goal from Ross Martin to get within 16-10. And despite being dominated by more than 2-to-1 margin in yards through three quarters, Duke still had a chance at the lead entering the final 15 minutes.
But on 3rd-and-7 from the Miami 45, a shotgun snap got away from Boone — a problem all night for Duke — and the drive stalled with a punt. Ladarius Gunter intercepted a pass by Boone on the next Duke possession, setting up a drive that was culminated by Kaaya's second touchdown pass of the night.
The true freshman needed less than 90 seconds to move Miami 66 yards in four plays, the last of those being the strike that found Yearby in stride down the right sideline for a 47-yard score and a 22-10 lead.