MIAMI GARDENS, Fla. (AP) — This time, Duke didn't lose on a Miami miracle.
Quentin Harris' jump pass to Daniel Helm late in the third quarter put Duke ahead for good, and the Blue Devils got a stop on the final play to beat reeling Miami 20-12 on a rain-soaked Saturday night and hand the Hurricanes their third straight loss.
Duke outscored the Hurricanes 13-0 after halftime, and won at Miami for the first time since 1976.
"Best feeling in the world," Duke linebacker Ben Humphreys said. "We stuck together like glue. Adversity struck. We got down but we battled back."
Deon Jackson scored on a 75-yard rush on the game's first snap from scrimmage for Duke (6-3, 2-3 Atlantic Coast Conference), which secured bowl eligibility. The Blue Devils — who lost when Miami scored on an eight-lateral kickoff return as time expired at Duke in 2015 — saw this game come down to the very last play, but Miami quarterback N'Kosi Perry's pass from the Duke 28 fell incomplete.
"The performance I had tonight, it's definitely not acceptable," said Perry, who completed 5 of 16 passes for 35 yards.
Deejay Dallas had an 83-yard touchdown run for Miami (5-4, 2-3) and finished with 124 rushing yards, but also fumbled the ball away twice. Travis Homer had a game-high 133 rushing yards and a touchdown for the Hurricanes.
"They fought hard. We fought hard," Duke coach David Cutcliffe said. "That was an old-fashioned mud game. We were fortunate to pull it out and get the win in the fourth quarter."
It was a bad day for Miami, and a worse day for the Sunshine State.
It was just the third time in the last 40 years that Miami, Florida and Florida State, the "Big Three" of college football in the Sunshine State lost on the same day. The others were Oct. 30, 2004 and Oct. 8, 2011 — though all three schools also lost last weekend, just not on the same day.
Miami started Malik Rosier at quarterback, and he completed 8 of 12 passes for 76 yards. Perry replaced Rosier early and they rotated throughout the game.
"It would be in our best interest if one guy steps up," Miami coach Mark Richt said. "We're still trying to find that answer right now."
Miami has not scored more than 14 points in any of its last three games. Miami got to the Duke 13 in the final seconds and Lawrence Cager caught what would have been a touchdown pass with 10 ticks remaining, but he was called for offensive pass interference and two plays later the game was over.
With the field waterlogged, thanks to a first-half downpour, both offenses struggled. But Duke found a way to create its own breaks on the drive that gave it the lead.
Facing third-and-3 at the Miami 15, Jackson took a handoff, stopped short of the line of scrimmage and threw a jump pass to the 6-foot-4 Helm — who couldn't make the initial catch, but tipped the ball over 5-foot-11 Miami safety Jaquan Johnson, then dove and caught his own deflection as Johnson punched the turf in disbelief.
"Just the game of football," Johnson said. "Sometimes it goes like that."
The go-ahead pass from Harris came two plays later.
Duke: Jackson finished with 113 rushing yards for Duke, and quarterback Daniel Jones completed 17 of 35 passes for 130 yards. Linebacker Joe Giles-Harris was huge for Duke, with 12 tackles and a blocked field goal in the third quarter.
Miami: Dallas' touchdown run was the sixth-longest rush in Miami history, a run where he splashed with every step down the field. The Hurricanes rushed for 300 yards — the last time they ran for so many in a loss was in 2007, when quarterback Kirby Freeman went 1 for 14 against North Carolina State.
The downpour that started shortly after kickoff left the turf at Hard Rock Stadium a complete mess. Countless puddles lined the field for most of the first half, and a considerable amount of grass was worn down to a layer of slick brown mud. That's not good news for the New York Jets and Miami Dolphins, who play on the same field Sunday at 1 p.m.
Duke: Host North Carolina on Nov. 10.
Miami: Visit Georgia Tech on Nov. 10.