Kyle Larson won the Coca-Cola Firecracker 250 in a narrow finish over Elliott Sadler in overtime.
Larson was declared the winner after Justin Haley made a three-wide pass of Larson and Sadler coming to the line and beat them to the checkered flag. But Haley crossed the yellow line at the bottom of the track in the attempt, which is illegal.
Larson swept all three stages of the race and led 39 laps.
“I honestly didn’t even think I had a shot to win that until I pulled over here to the lug nut check and I could see (on) the big screen where he kind of went below the yellow line,” Larson told NBCSN. “A little bit of a shock for me.”
Haley, driving the No. 24 Chevrolet for GMS Racing, was making his second Xfinity start. He was credited with an 18th-place finish.
NASCAR ruled Larson the winner while Haley was celebrating on the frontstretch.
“I just wish NASCAR would … tell us how much of the car we can have below the yellow line,” Haley told NBCSN. “I don’t get this opportunity enough … Seeing the replay there was room for me to go up so I don’t know why they’re calling me like that.”
Haley competes full-time for GMS Racing in the Camping World Truck Series.
MORE: Haley says “BS call”
Sadler earned his fourth runner-up finish at Daytona and his third in a row.
Without Haley’s bold move, the finish looked nearly identical to February’s race at Daytona when Sadler finished second to Tyler Reddick in the closest finish in national NASCAR history.
“I just didn’t know (Haley) was coming,” Sadler told NBCSN. “Just miscommunication between my spotter and myself. I was just trying to really key in on (Larson) on when to side draft. I felt like it was Daytona in February all over again. I hate it for my guys. They work way too hard for me to keep finishing second here at Daytona.”
The final stretch of the race was set up by a 16-car wreck with 19 laps to go that eliminated February Daytona winner Tyler Reddick. Austin Cindric walked away after his No. 60 Ford flipped multiple times.
That wreck resulted in a 12 minute and 18 second red flag period.
The overtime finish was setup by a nine-car crash with three laps left in the original 100-lap distance.
STAGE 1 WINNER: Kyle Larson
STAGE 2 WINNER: Kyle Larson
MORE: Race results, point standings
WHO HAD A GOOD RACE: Kaz Grala finished fifth for his second top five of the year despite having to pit right before a restart with seven laps to go in the original distance for a tire going down … Christopher Bell placed third after spinning on pit road in Stage 1 and being called for a pit penalty … Shane Lee finish a career-best sixth in his fifth start … Timmy Hill placed seventh, matching his career-best finish (Daytona, February 2012).
WHO HAD A BAD RACE: Pole-sitter Ryan Preece finished 39th after suffering a radiator problem on Lap 52 … Ryan Reed finished 26th after being involved in three accidents, including the 16-car wreck … Chase Elliott placed 29th after going to the garage for a bad oil pump belt.
NOTABLE: Elliott Sadler is now tied with Michael Waltrip for most runner-up finishes at Daytona without a win (four).
WHAT’S NEXT: Alsco 300 at Kentucky Speedway at 8 p.m. ET on July 13 on NBCSN.