In the second Duel of the evening, Hamlin had powered by to the lead with five of 60 laps to go, but Bell had made his way to second at the start of the final lap.
As the duo entered Turns 3 and 4, Bell first dived low, then high to get around Hamlin and held off Austin Cindric by 0.113 seconds for the win. Hamlin ended up third behind Cindric, as John Hunter Nemechek took fourth and Harrison Burton rounded out the top five.
Kaz Grala, driving a third entry for Front Row Motorsports, rallied on the final lap to pass B.J. McLeod and claim the final spot in the field for Sunday’s 500.
The second duel was marred by a huge crash on lap 46, as Brad Keselowski got into the back of Kyle Busch, who tapped the rear of the William Byron, who then turned into Ryan Blaney to trigger a wild accident.
Blaney’s #12 Ford briefly erupted in flames from the damage as NASCAR displayed a caution and then red-flagged the race for nearly nine minutes to clean the debris.
In all, 11 cars were involved, and several drivers will have to use backup cars for Sunday’s Daytona 500, which will require them to start the race from the rear of the field.
Completing the top-10 were Zane Smith, who recovered from a pitroad speeding penalty, Keselowski, Byron, Chase Briscoe and Justin Haley.