Jimmie Johnson kept his nose clean in a fractious race to claim his eighth NASCAR Sprint Cup win at Martinsville.
Johnson and his Hendrick Motorsport team-mates Jeff Gordon and Kasey Kahne spent the whole race battling with the Joe Gibbs cars of Kyle Busch and Matt Kenseth, but in the end it was Johnson who took the chequer for the 62nd time in his career.
Clint Bowyer brought his battle-scarred Toyota home second after a strong finish, just ahead of Gordon.
Kahne was fourth, while Busch crossed the line side-by-side with reigning champion Brad Keselowski, with Busch fractionally ahead.
Two potential winners were hobbled when a yellow quickly followed a restart caught many of the drivers by surprise.
In the confusion, Bowyer rear-ended Jamie McMurray and was rammed by Michael Waltrip Racing team-mate Martin Truex Jr, causing substantial damage to Truex's car. Joey Logano also got involved, bashing up the nose of his Penske Ford in the process.
The caution was caused by Dale Earnhardt Jr making a slow getaway. This caused Brian Vickers to tip Marcos Ambrose into a half-spin.
As the Australian fought for control he tagged Mark Martin (standing in for the injured Denny Hamlin in the #11 Gibbs Toyota). Vickers sustained the most damage, but continued to run in the top 10 until a late left-rear puncture caused him to spin off the lead lap.
Martin's first stand-in race for Joe Gibbs was hardly star-studded. There were numerous clashes on track and an incident in pitroad when he left before the left-front wheel was attached. Despite all this, he managed to finish 10th.
Danica Patrick also had an eventful race. She started on the final row following an engine change penalty, but worked her way into the top 20.
On multiple occasions she dropped off the lead lap, but fought her way back. She caused the race's opening caution - spinning after a nudge from Ken Schrader, and a late-race caution when Vickers tapped her into Earnhardt - but drove well to take 12th.
The race was briefly stopped late on after Kurt Busch's Furniture Row Chevrolet burst into flames as it hit the wall when his brakes failed.
The former champion had the presence of mind to hit the extinguisher button before he clambered out, but with so much clear-up work needed, racing was suspended.
Results - 500 laps: Pos Driver Team/Car Time/Gap 1. Jimmie Johnson Hendrick Chevy 3h38m58.000s 2. Clint Bowyer Waltrip Toyota + 0.628s 3. Jeff Gordon Hendrick Chevy + 0.909s 4. Kasey Kahne Hendrick Chevy + 1.512s 5. Kyle Busch Joe Gibbs Toyota + 2.182s 6. Brad Keselowski Penske Ford + 2.189s 7. Jamie McMurray Earnhardt Ganassi Chevy + 3.057s 8. Marcos Ambrose Petty Ford + 3.541s 9. Greg Biffle Roush Fenway Ford + 3.941s 10. Mark Martin Joe Gibbs Toyota + 4.193s 11. Brian Vickers Waltrip Toyota + 5.147s 12. Danica Patrick Stewart-Haas Chevy + 5.156s 13. Kevin Harvick Childress Chevy + 5.197s 14. Matt Kenseth Joe Gibbs Toyota + 5.392s 15. Carl Edwards Roush Fenway Ford + 5.643s 16. Casey Mears Germain Ford + 5.819s 17. Tony Stewart Stewart-Haas Chevy + 6.150s 18. Jeff Burton Childress Chevy + 6.503s 19. Paul Menard Childress Chevy + 6.926s 20. Aric Almirola Petty Ford + 7.917s 21. Bobby Labonte JTG Daugherty Toyota + 8.317s 22. Regan Smith Phoenix Chevy + 20.449s 23. Joey Logano Penske Ford + 1 lap 24. Dale Earnhardt Jr Hendrick Chevy + 2 laps 25. Ricky Stenhouse Jr Roush Fenway Ford + 2 laps 26. Juan Pablo Montoya Earnhardt Ganassi Chevy + 3 laps 27. JJ Yeley Baldwin Chevy + 3 laps 28. David Gilliland Front Row Ford + 4 laps 29. Dave Blaney Baldwin Chevy + 5 laps 30. David Ragan Front Row Ford + 7 laps 31. Ryan Newman Stewart-Haas Chevy + 8 laps 32. Ken Schrader FAS Lane Ford + 8 laps 33. Landon Cassill Circle Sport Chevy + 8 laps 34. Joe Nemechek NEMCO-JRR Toyota + 9 laps 35. Josh Wise Front Row Ford + 12 laps 36. David Stremme Swan Toyota + 15 laps 37. Kurt Busch Furniture Row Chevy + 43 laps* 38. David Reutimann BK Toyota + 43 laps 39. Travis Kvapil BK Toyota + 64 laps 40. Martin Truex Jr Waltrip Toyota + 114 laps * Not running at finish Retirements: Scott Speed Leavine Ford 64 laps Scott Riggs Xxxtreme Ford 47 laps Michael McDowell Parsons Ford 26 laps