Alex Bowman won the action-packed Xfinity 500 this afternoon at Martinsville Speedway for his fourth win of the season. Kyle Busch took P2, while Brad Keselowski completed the podium.

Kyle Larson led the field at the race start from Chase Elliott, after his ninth win of the season last weekend. The race was processional until Lap 55, when Elliott and Larson battled for the lead. Competition caution saw Larson retake the lead on the restart. Ryan Newman spun in Turn 4 inciting a yellow flag. The race restarted on Lap 77 with Larson and Elliott battling for the lead. Austin Dillon hit Ryan Blaney while battling for P8. Chase Elliott kept the lead and won the first stage.

Elliott led Stage 2 from Martin Truex Jr. while Larson started a charge from farther down the field on Lap 177. Dillon brought out another yellow flag when he hit the wall in Turn 2 after getting a flat tire on Lap 197. The race restarted on Lap 204 with Truex leading from Elliott, who took the lead on the next lap and won Stage 2.

RELATED: First-Time Drifter Hailie Deegan Looks Like A Natural—Until Nissan 240SX Goes Up In Smoke

Ryan Newman Spins; Elliott Leads

Ryan Newman spins at martinsville
Via: NASCAR

Stage 3 started with Elliott in the lead from Alex Bowman. Contact between Michael McDowell and Corey LaJoie brought out another yellow flag on Lap 310. Denny Hamlin started at the back for failing inspection twice, but was up into P2 by the restart, but misshifted and lost a position. Quin Houff deliberately spun Josh Bilicki on Lap 324 and the race was yellow-flagged again. Houff was given a penalty which resulted in him being 15 laps down.

The race restarted on Lap 346, with Joey Logano in the lead after pit stops. Logano lost it to Elliott on Lap 351. Cole Custer spun on his own on Lap 358 for another yellow flag. Elliott led from green with Bowman in P2. The race was yellow-flagged again on Lap 378 when Daniel Suarez spun in Turn 2. The race restarted on Lap 385 with Dillon leading from Truex.

The lead traded a few times with Hamlin emerging triumphant from Bowman. Elliott and Brad Keselowski made contact on Lap 455 while battling for P3. Elliott spun as Byron snuck by and took P3. Elliott was able to have his car repaired in the pits. The race restarted on Lap 461 but wasn't green for long, as Ricky Stenhouse Jr. spun and Bubba Wallace sustained severe front-end damage.

The race restarted on Lap 467 with Hamlin leading from Bowman, who defended from Keselowski in P3. Aric Almirola made contact with Truex on Lap 471, sending him into the wall and nudging Kurt Busch along the way. On the restart, Hamlin and Keselowski battled for the lead but ultimately lost it to Bowman on Lap 478. Bowman held onto the lead and won the race, securing his spot in the top four. Hamlin and Truex advanced to the final round.