Denny Hamlin stayed ahead of three wrecks in the final 17 laps — including a 21-car crash — to hold on for an overtime win in Sunday’s Daytona 500 at Daytona International Speedway.

It was Hamlin’s second win in The Great American Race in the last four years, having also taken the checkered flag in 2016. He led a 1-2-3 Joe Gibbs Racing finish with Kyle Busch second and Erik Jones third. Joey Logano and Michael McDowell finished fourth and fifth, respectively.

“What happened here is really unreal,” Joe Gibbs said to Fox, referring to the memory of his son J.D., who passed away last month. “I’m emotionally shot …. I’m just saying, what happened here is really unreal. …. I think J.D. had the best view of everything.”

MORE: Click here for Daytona 500 results, NASCAR Cup point standings

Said Hamlin, who got his break with Joe Gibbs Racing from J.D. Gibbs: “The whole family, they’ve done so much for me over the course of my career. This one’s for J.D. We’re desperately going to miss him for the rest of our lives. His legacy still lives on through Joe Gibbs Racing.”

It was Hamlin’s first NASCAR Cup win since Darlington in 2017, snapping a 47-race winless streak.

Although he earned his highest career finish in the 500 (previous best was third in 2016), Kyle Busch failed to win the 500 for the 14th time in his career, leaving him somewhat disappointed.

“It’s awesome to see a JGR car in victory lane for Joe and J.D. and everything that’s gone this offseason with all that, but it’s bittersweet … for all my team guys and us and trying to get our Daytona 500 victory,” Busch said. “(Hamlin) has two and I’ve got none, but that’s a part of it sometimes. We just have to move on and go to the next time.”

​Ty Dillon finished sixth, followed by Kyle Larson, rookie Ryan Preece, Jimmie Johnson and Ross Chastain.

On Lap 191, the seemingly inevitable Big One occurred. Paul Menard bump-drafted Matt DiBenedetto, triggering the massive wreck that brought out a red flag race stoppage.

Another seven-car wreck occurred on Lap 194 involving Ricky Stenhouse, Alex Bowman and teammate Chase Elliott, among others. And then with two laps to go in regulation time, the race was sent to overtime after another wreck.

This was the final restrictor plate race in NASCAR history. Tapered spacers will replace plates at both Daytona and Talladega Superspeedway.

Stage 1 winner: Kyle Busch. Stage 2 winner: Ryan Blaney.

Who had a good race: Even though his day ended 17 laps short of the finish due to being caught in a 21-car wreck, Matt DiBenedetto (finished 28th) had a great debut for Leavine Family Racing, leading a race-high 49 laps. … And then there was Ryan Preece’s outstanding 8th-place finish in his Daytona 500 debut.

Who had a bad race: Bubba Wallace, who finished second in last year’s 500, finished 38th Sunday after being involved in a wreck. … Daniel Hemric was parked for the final 17 laps after driving after the red flag fell following the Lap 191 crash.

Notable: Jimmie Johnson was penalized two laps after being assessed an illegal fueling penalty following a wreck on the entrance to pit road on Lap 159. NASCAR ruled that the fueler, who is allowed only to fuel the car, took part in repairs, which is not allowed. Johnson rallied to make up the two-lap penalty to finish ninth.

Quote of the day: “It just felt like it was one of those days when it was meant to be.” — Denny Hamlin.

What’s next: The NASCAR Cup Series moves to Atlanta Motor Speedway for next Sunday’s Folds of Honor Quik Trip 500.

Follow @JerryBonkowski