Jeff Gordon, who lost his engine on the final lap and coasted across the finish line, was third, followed by Kyle Busch and Matt Kenseth.
Edwards and Johnson battled for the lead over the final 20 laps. Johnson took the lead with 14 laps to go but Edwards drew back in first and led the rest of the way. He had his Ford Fusion ahead by as much as 3 seconds in the final 10 laps before easing home for the win.
"Nobody was going to beat Carl today, he was in a league of his own," said Gordon.
Rain had won through the weekend, cutting back race activities Friday and Saturday, and pushing Sunday's start back two hours. Rain caused Sunday's racing to be suspended in the 87th lap of the 250-lap race.
Busch's fourth-place finish boosted him into an unofficial six-point lead in the championship standings.