Martin Truex Jr. had the best car in the Coca-Cola 600 at Charlotte Motor Speedway, but Austin Dillon had the ideal strategy to claim victory.

Truex led 233 laps in NASCAR's longest race of the season, but while he and other contenders pitted with 33 laps to go, Dillon stayed on the track and crossed the finish line on fumes for his first career win.

It is the first time the famed number three car has been in victory lane for the Coca-Cola 600 since Dale Earnhardt beat Jeff Gordon in 1993. 

Jimmie Johnson, who also tried to stay out and win the fuel-mileage race, ran out of gas just before the white flag waved, giving the lead away to Dillon, who held off Kyle Busch and Truex for the win.

Matt Kenseth finished fourth followed by Denny Hamlin and Kurt Busch. 

NASCAR's longest night finished on Monday morning after a thunderstorm brought out the red flag for one hour, 39 minutes just after Matt DiBenedetto crashed on lap 143.

When the race returned to green there were 47 laps remaining in Stage 2, but the delay was no issue for Truex, who led all but nine laps in his sixth stage win of the season.

Truex led the most laps in Stage 3 to become the second driver to lead the most laps in three consecutive Coca-Cola 600s but a slow pit stop with three laps remaining in the third of four 100-lap stages allowed Hamlin to pick up the playoff point. 

Brad Keselowski and Chase Elliott brought out the first of 10 caution flags just 19 laps into the race after debris from a lapped car initiated contact.

Kyle Larson, who entered the race as the points leader, received heavy damage after blowing a right-front tyre on lap 291 and colliding with the wall.

Fan favourite Dale Earnhardt Jr. finished his career winless in the Coca-Cola 600, ending up 10th Sunday in his final Cup Series season.