Denny Hamlin scored his first win of the season at Martinsville Speedway, Toyota's second victory of the season, while Jeff Burton finished third to take over the points lead.
Hamlin ran a conservative fuel strategy, pitting in one of the later cautions of the race, while others stayed out hoping the slight drizzle that prevailed for most of the afternoon translated into heavy rain.
However he didn't change tyres on that last stop, which allowed him to move up the order and gain track position relative to some of the fastest cars of the day that ran the same fuel strategy.
The Gibbs driver quickly went by each of the cars that had not pitted with him, grabbing the lead from Jeff Burton with 73 laps remaining.
From then on, the race stayed under green all the way to the chequered flag and Hamlin drove well to stay out of trouble while going through the traffic to secure his first win at Martinsville.
"Finally! The curse is over," said Hamlin, who had lost a likely win at Bristol two weeks ago due to a fuel pick-up problem on the last restart.
"We had such bad luck over these last two weeks. It finally feels good to come here and get a win in front of my home fans. This is a sign of things to come for me, I believe."
"We didn't take tyres on the last stop, so those guys were on newer tyres than me so we decided to just take fuel and called the tyres off right at the last minute. Our car was good in the long run and that's what counted."
Polesitter Jeff Gordon finished second, recovering well from an incident on lap 58, where he picked up damage to the front end of his car while trying to avoid a wreck ahead of him at turn four.
He was also running the same fuel strategy as Hamlin in the end and looked to be the car to beat for a good part of the day. He also got by Burton in the closing laps of the race but ran out of time to try to put Hamlin under any pressure.
"It came down to pit strategy and Denny (Hamlin) and those guys definitely did the right strategy," said Gordon, who has now moved into the top-12 in the points. "I don't know, my car just would never go on that last set, last two sets (of tyres).
"It was a handful, Junior got by me and I was just trying to hold on and all of a sudden it started coming to me a little bit. Luckily there was a real long run there and I was able to get by the 99 (Edwards) and the 31(Burton) and make a great effort out of it."
Jeff Burton took the lead of the race by gambling on fuel strategy with 110 laps remaining when most of the leaders pitted for the last time. Had the rain threat materialised shortly after that, it would have probably been his day again, but in the end he had to see Hamlin and Gordon go by him.
He blamed rookie Michael McDowell for not moving over in the closing laps, making him lose ground and putting him under pressure from Gordon when he seemed to be able to keep up with Hamlin.
"We conserved a bit (of fuel) when we were leading there," said Burton, who now leads the driver standings.
"We got out front and once we got going I didn't have enough rear grip to burn fuel so we actually started coming back and I ran (Hamlin) down. I thought we were going to be in pretty good shape but that kid in the double zero car (McDowell), he needs to learn some manners or he is going to get taught."
Jimmie Johnson and Tony Stewart rounded out the top ten, both getting by Dale Earnhardt Jr in the last few laps. Earnhardt led the most laps during the afternoon, completing 146 up front but seemed to lose pace when it most mattered.
Juan Pablo Montoya spent a good number of laps in the top ten but didn't have the right balance to be in position to contend. His 13th place-finish is his best result of the year thus far and moves him up in the standings once again.
His teammate Dario Franchitti had a less troubled race than two weeks ago at Bristol and scored his best result of the season as well with a 22nd place finish. However, it wasn't enough for him to move into the top-35 in the points, which means he will have to qualify on time again next weekend at Texas.
"I think all the fenders are on (the car), just none of them are the shape they were at the start of the race," said Franchitti, who continues to lead the rookie standings.
"We finished 22nd and it was a great job today by everybody on the team. The boys did a good job with the car and called a great race, great pit stops. I just stayed out of trouble and got as quick as I could and that was it. We'll keep working at it."
Sam Hornish Jr finished 28th and has dropped out of the top-35 in car owner standings as well.
Former points leader Kyle Busch had a difficut day, tangling with his brother Kurt as soon as lap 22 and then being forced to pit for a broken end gear, which kept him in the garage for a while. He was classified 38th and has dropped to fifth in the driver standing.
Pos Driver Car Laps
1. Denny Hamlin Toyota 500
2. Jeff Gordon Chevrolet 500
3. Jeff Burton Chevrolet 500
4. Jimmie Johnson Chevrolet 500
5. Tony Stewart Toyota 500
6. Dale Earnhardt Jr Chevrolet 500
7. Casey Mears Chevrolet 500
8. Jamie McMurray Ford 500
9. Carl Edwards Ford 500
10. Clint Bowyer Chevrolet 500
11. David Ragan Ford 500
12. Kevin Harvick Chevrolet 500
13. Juan Montoya Dodge 500
14. Regan Smith Chevrolet 500
15. Elliott Sadler Dodge 500
16. Paul Menard Chevrolet 500
17. Kasey Kahne Dodge 500
18. Travis Kvapil Ford 499
19. Ryan Newman Dodge 499
20. Greg Biffle Ford 499
21. Martin Truex Jr Chevrolet 499
22. Dario Franchitti Dodge 499
23. Brian Vickers Toyota 497
24. David Gilliland Ford 497
25. Bobby Labonte Dodge 497
26. Michael McDowell Toyota 497
27. J.J. Yeley Toyota 497
28. Sam Hornish Jr Dodge 497
29. Patrick Carpentier Dodge 497
30. Matt Kenseth Ford 496
31. Mike Skinner Toyota 496
32. Jeremy Mayfield Chevrolet 495
33. Kurt Busch Dodge 493
34. Bill Elliott Ford 492
35. Michael Waltrip Toyota 483
36. Reed Sorenson Dodge 471
37. Ken Schrader Toyota 467
38. Kyle Busch Toyota 443
David Reutimann Toyota 441
Robby Gordon Dodge 440
Scott Riggs Chevrolet 420
Aric Almirola Chevrolet 379
Dave Blaney Toyota 374