First 50 laps:
Sunday's was the hottest race at Martinsville Speedway since April 2004, with temperatures at 81 degrees at the time of the green flag.
Denny Hamlin started first after winning the pole at qualifying Saturday afternoon. Chase Elliott was supposed to start second, but was forced to the back due to his team changing engines in his car during the first practice Saturday morning.
The first caution of the day came out on Lap 29 when Ross Chastain left debris on the front stretch. Hamlin had trouble on pit road during the caution, losing four spots. Martin Truex Jr. was the fastest off of pit road, and came out in first ahead of Ryan Blaney, Daniel Suarez, Clint Bowyer, and Hamlin.
Elliott climbed into the top 15 during the first 50.
Truex continued to lead through the end of Stage 1.
Playoff driver Kyle Busch, who came into Sunday with eight straight top-10 finishes, had trouble with his throttle, pushing him down to 9th. Kevin Harvick, also in the playoffs, was largely a nonfactor due to handling issues.
Kyle Larson was the playoff driver struggling the most, having a hard time staying on the lead lap. Truex passed Larson, putting him a lap down on Lap 124.
Elliott reached the top 10 on Lap 77.
At the end of Stage 1, Truex led Hamlin, Blaney, Bowyer, Joey Logano, William Byron, Elliott, Kyle Busch, and Daniel Suarez. Larson received the free pass to stay on the lead lap to start Stage 2.
Elliott worked his way up to fifth out of the end of stage caution. Teammate Byron moved up into second on Lap 165.
Austin Dillon brought out the caution after wrecking on the front stretch on Lap 178. On the pitstop during the caution, Elliott's car lost an axle, and he was forced to come back to his stall. He sat there after the restart while his crew worked to fix the issue. The car eventually had to be taken to the garage, and by the time he got back out on the track on Lap 235 he was 52 laps down, and 21 laps behind the last place driver Timmy Hill.
By lap 217, Truex had led the most laps he'd ever led in a race at Martinsville. Blaney had moved up to 2nd, just a few car lengths behind Truex on Lap 243.
On Lap 248, Alex Bowman got into the back of Bowyer, who was running in the top 3. Bowyer had a back tire go flat, but his team changed the wrong tire. The issue wasn't noticed by Bowyer until after he got back out on the track. He lost his other tire on his first lap out, got caught on the outside, and couldn't get to pit road, bringing out caution.
While most of the leaders pitted during the caution for fresh tires for the end of Stage 2, Larson stayed out, putting him in first in front of Truex. Larson best Truex on the restart, and led for six laps before the No. 19 car got in front of him on the last lap of the stage. Larson was still able to pick up nine stage points with the second place finish.
Blaney, Logano, Aric Almirola, Byron, Busch, Hamlin, Erik Jones, and Keselowski rounded out the top 10 at the end of the stage.
Truex again restarted in first, and built a sizable lead over Blaney. With the lead eventually growing to half a straightaway, the battle for second raged. Logano passed his teammate, Blaney, to reach his highest position of the day on Lap 284. Logano started the day 10th.
Blaney, Logano, Byron, and Busch battled for spots 2-5 through Lap 300.
Ty Dillon brought another caution for debris on the track on Lap 346, and Truex was again first off pit road and first on the restart over Blaney, who moved up three spots on the pit stop to second.
Out of another restart, Byron got ahead of Blaney, while Busch, Hamlin, and Keselowski battled for spots four, five, and six.
Busch and Almirola got into each other off of Turn 4 on Lap 361, forcing Busch sideways on the front straightaway. Ryan Preece and Jimmie Johnson also suffered damage in the incident. Johnson's was so significant he was forced to the garage, ending his day.
Busch went back out, missing a chunk of his left front fender.
Another incident between Bowman and Suarez brought another caution after Bowman got loose and slammed into Suarez in Turn 3. Truex, again, was first on the restart, while Blaney and Byron battled for second.
At Lap 400, with more than 200 laps in the top 5, Byron had spent more time in the top 5 than any previous race of his career.
Busch moved back to 12th, and Harvick was up to seventh by Lap 443. It was Harvick's highest position of the day.
Bowyer dropped another back tire on Lap 448, bringing out another caution with 50 laps to go.
Truex led Blaney, Byron, Logano, and Hamlin out of the restart.
On Lap 458, Hamlin pushed Logano into the wall on the frontstretch. Logano cut a tire in the incident, but was able to make it down the front stretch before the tire went all the way down. He spun, bringing out another caution.
Logano was running in the top 5 at the time.
Byron was on Truex's heels out of the restart. Keselowski battled his teammate, Blaney, for third, and eventually knocked the 12 up the track a bit. Keselowski got out of the way for his teammate, who is still in the playoff hunt, to allow Blaney to stay in the top 3.
It was short lived, though, as Keselowski eventually passed Blaney for a third place finish.
With 24 to go, Truex led Byronn, Blaney, Keselowski, and Harvick.
Truex made his way around lapped traffic for the final three laps, and cruised to a win.