DAYTONA BEACH, Fla. – Friday night’s NASCAR Xfinity Series race ended with a sweep, and overtime and two broken hearts.

Five laps later than the scheduled 100, Kyle Larson got the victory in the Coca-Cola Firecracker 250 by .005 seconds over Elliott Sadler, who finished second at Daytona for the third straight race.

But Larson’s victory wasn’t official until NASCAR demoted Justin Haley, who made a dramatic pass for the lead coming to the finish line but dipped below the yellow line dividing the racing surface from the apron, a violation of NASCAR rules.

RELATED: Full race results | Series standings

“I didn’t even think I’d won until I got to the lug nut check, and they had a big screen down there,” Larson said. “And I saw a little bit of the replay and saw that he went a clipped the yellow line, so I asked about it, and they said NASCAR was talking about it, and about 10 seconds later we were declared the winner…

“I saw him (Haley) go up the track, and I thought I was screwed at that point, because I wasn’t going to have anybody behind me to propel me or at least keep me side-by-side with Elliott. The we got to the straightaway, and I could see in my mirror that he was getting a huge run…

“The I saw him hang a left, and I knew with the run he had, if he had a hole, he was going to come out the leader, and he shot right by us.”

Sadler, who has never won at Daytona, had run second to JR Motorsports teammate Tyler Reddick by .0004 seconds in February, the closest recorded margin in NASCAR history.

“This one hurts,” said the 43-year-old Sadler, whose status with JRM for 2019 remains uncertain because of sponsorship issues. “I don’t know how many restrictor-plate races I have left in my career. To lose the one like we did in February, so close, I feel like we were in the right spot again.

“We were really paying attention to Kyle and trying to figure out what he was doing off of (Turn) 4, and he was really running into my door a lot and trying to slow me down. And I was trying to leave myself room to get away from him. And it was just a miscommunication that the 24 (Haley) was coming on the bottom. I could have definitely made a block there and got some momentum.”

WATCH: The wreck that brought the race to overtime

Haley, who earned his first NASCAR Camping World Truck Series victory earlier this season was tantalizingly close to victory in just his second Xfinity start.

“Not how we wanted it to end,” Haley said. “I’m running trucks full-season, and this is just an opportunity part-time, and I’m extremely blessed just to get the opportunity.”

A nine-car wreck on Lap 97 knocked out series leader Cole Custer and forced the overtime. Sadler’s lone consolation was retaking the points lead by 12 over Daniel Hemric, who moved into second place.

A violent multicar wreck on Lap 82 eliminated the contending cars of Austin Cindric, Matt Tifft and Reddick and damaged the vehicles of Custer and Hemric.

Heading through Turn 1, Tifft, with a strong push from Reddick, made a move toward a hole to the inside of Cindric, but the hole closed, and contact between Tifft’s and Cindric’s cars ignited the chain-reaction wreck.

Cindric’s No. 60 Roush Fenway Racing Ford turned sideways and barrel-rolled back down the track after contact with Reddick’s No. 9 Chevrolet on the steep banking in the corner. Cindric was unhurt in the accident, but his race was over.

RELATED: See the incident unfold | In-car wreck footage | All the action in photos

“I’m fine,” Cindric said after exiting the care center. “It’s just unfortunate. We have such a strong run like that, and it comes to an end early. There are plenty of things I can complain about, but I have to be thankful that Roush and NASCAR and everybody else who puts safety first really comes to fruition in situations like that.

“It’s definitely the biggest wreck I’ve ever had. It’s unfortunate I keep having those at Daytona. I’ve got to quit going to this infield care center here. I know all the people and all the faces. They’re very nice, but it’s just a shame.”

WATCH: Cindric barrel-rolls

Racing in the series for the fourth this season, Ryan Preece started from the pole in the No. 18 Joe Gibbs Racing as the owner points leader, after qualifying was rained out on Friday afternoon. But JGR’s quest for the owners’ championship took a serious hit when Preece retired from the race in 39th place after 51 laps because of a mechanical failure.

“We must have got a piece of debris go through the radiator, and we lost all of the water,” Preece explained after climbing from the car. “It cooked the motor down. Unfortunate. I felt like we were starting to make our way forward and start to work the draft.

“Just started to figure out what we needed to move forward and ended our night early. I hate it for these guys because of the owner points. They will drop some points in there today but hopefully we can make it up in New Hampshire.”

The Nos. 15 and 52 of BJ McLeod and David Starr, respectively, were disqualified for failing to obey the red flag.

Cars take the track again Saturday at 7 p.m. for the Monster Energy NASCAR Cup Series’ Coke Zero Sugar 400 (7 p.m. ET, NBC). The Xfinity Series is back on track on July 14 at Kentucky Speedway (8 p.m. ET, NBCSN).