The Hurricanes won despite Stephen Morris throwing four interceptions, as many as he had thrown all year, while the defense surrendered a season-high 500 yards against the Tar Heels' no-huddle scheme.
But Miami got the stop it needed at the end, with Bryn Renner's final heave into the end zone from the Miami 28 falling incomplete on the game's final play.
The loss was the latest stinging setback for the Tar Heels (1-5, 0-3), who entered the year with hopes of winning the ACC's Coastal Division but now find themselves off to their worst start since 2006. They led this one 23-13 early in the fourth only to see Crawford score twice in the final 11½ minutes to erase the deficit.
Eric Ebron had eight catches for 199 yards - a single-game record for a North Carolina tight end - while Quinshad Davis also hauled in a touchdown pass from Renner.
North Carolina was going for its first win against a top-10 opponent since beating then-No. 4 Miami here on a last-second field goal in 2004.