A.J. Allmendinger led the way on the last of 100 laps with teammate Ross Chastain close behind him but as the duo entered Turn 3, Chastain got into the back of Allmendinger and triggered a multi-car accident.
Allmendinger got turned around and Chastain plowed into Michael Annett, who was making a strong move on the outside.
Kaulig driver Justin Haley, who had been running with his teammates earlier in the race but dropped back to sixth at one point, emerged the leader and the surprise winner.
The win is the second this season for Haley and his second consecutive in a superspeedway race – he also won the June race at Talladega, with Kaulig teammate Chastain finishing second in that one.
“Amazing effort by Kaulig Racing. Obviously, I hate Ross and A.J. got together,” Haley said. “We all work as one. I can’t believe it – two superspeedway races in a row.
“It looked like a little delayed reaction, obviously not intentional on anyone. We got lucky there. We got shuffled out and I got a little frustrated but that’s why you never give up – these things are so unpredictable.
“Just an incredible effort today by Kaulig Racing.”
Asked about the last-lap incident, Chastain said: “That’s terrible to run into a teammate like that. Must be my fault, though. It’s unfortunate, we did everything right all night. Did everything right to be the best teammate I could, and last lap I don’t back down, I’m going to go for it.
“Coming to the checkered, what am I supposed to do? Run second? Not this guy.”
Gray Gaulding ended up finishing second, Chase Briscoe third, Riley Herbst fourth and Harrison Burton rounded out the top-five.
Competing the top-10 finishers were Chastain, Annett, Cindric, Josh Williams and Jesse Little.
Following the break between Stages 1 and 2, several lead-lap cars pit but Allmendinger remained on the track and in the lead when the race returned to green on Lap 65.
Brandon Jones and Daniel Hemric both had to restart from the rear of the field for having too many pit crew members over the wall during their respective stops.
With 30 laps remaining in the race, Allmendinger remained out front followed by his teammates Chastain and Haley. Briscoe was fourth and Williams fifth.
With 20 laps to go, Allmendinger, Chastain and Haley remained 1-2-3 and in command of the race.
Briscoe made a move with 10 laps to go to try to break up the Kaulig Racing cars, successfully knocking Haley out of the picture.
As the laps wound down the battle for the win became Kaulig teammates vs. the Fords of Briscoe and Cindric.
With two to go, Cindric tried to make a move on the leaders only to see Chastain block his advance and Briscoe appeared to get shuffled back.
Allmendinger went to the outside and passed Gaulding on the last lap and held on for the Stage 2 victory over Chastain.
Haley was third, Gaulding fourth and Annett rounded out the top-five.
Following the break between Stages 1 and 2, most lead-lap cars all elected to pit but Timmy Hill stayed out and led the way on the restart on Lap 35.
Allmendinger powered to the lead in Turn 4 on Lap 36 brining Chastain along with him in second.
On Lap 40, Briscoe got into Jones off Turn 4 which triggered a multi-car accident that collected all four JR Motorsports cars – Noah Gragson, Justin Allgaier, Annett and Hemric.
Also caught up in the incident were Brett Moffitt, Burton and Anthony Alfredo.
Several cars elected to pit but Allmendinger remained on the track and in the lead when the race returned to green on Lap 46.
In Turn 4 on Lap 46, Allgaier appeared to blow a tire which triggered another multi-car accident that also collected Alex Labbe, Joey Gase and Jeremy Clements.
“I don’t know what happened there, man. It blew a rear out and took off,” Allgaier said over his team radio. “I’m sorry, y’all.”
The race was placed under a red flag to clean fluid off the track. It returned to yellow after a delay of 12 minutes. Allmendinger remained in the lead on the restart on Lap 50.
On Lap 52, NASCAR threw a caution for debris on the backstretch of the track. Several lead-lap cars took advantage over the caution to pit including Allmendinger, Chastain and Haley.
Herbst led the way on the restart on Lap 56.
Gaulding got around Herbst to take the lead with three laps remaining in the stage.
Haley held off Chastain in a one-lap shootout to the end of first stage, giving him the Stage 1 victory, his third stage win of the 2020 season.
Cindric was third, Brandon Brown fourth and Briscoe rounded out the top-five.
Cindric, who started on the pole, quickly lost the lead to Briscoe on the first lap.
On Lap 7, Joe Graf Jr. spun on the frontstretch and slammed the wall to bring out the first caution of the race. It also served as the competition caution, which NASCAR had planned to display to allow teams to check tire wear.
Only a handful of teams elected to pit but Briscoe continued to lead the way on the restart on Lap 12.
On Lap 14, Caesar Bacarella wrecked in Turn 3 to bring out another caution. John Jackson was also involved in the incident.
The race returned to green on Lap 18 with Briscoe still out front.
With 10 laps remaining in the first stage, Briscoe maintained a small advantage over Cindric followed by Haley, Chastain and Alfredo.
On Lap 23, Haley got around Briscoe for the lead with some help from Chastain.
Jeffrey Earnhardt, Kody Vanderwal and B.J. McLeod got caught up in an accident in Turns 1 and 2 on Lap 25 to bring out the third caution of the race.
The race returned to green on Lap 30 with Haley still leading the way.
Prior to the race, Herbst’s No. 18 Toyota was penalized for improperly mounted ballast. The team’s car chief was ejected from the track.
In addition, the No. 18 had to start the race from the rear of the field and had to serve a pass-through penalty down pit road after Herbst had taken the green flag