Sadler last week seemed to have won the first Nationwide race at Indianapolis Speedway, but the triumph was stripped from him when NASCAR determined he had jumped a restart with 18 laps remaining.
Sadler's appeal was rejected and the Indy victory instead went to Brad Keselowski.
But he got redemption in Iowa, passing Justin Allgaier for the lead with 58 laps remaining and besting him by 0.6 seconds at the finish for his fourth win of the season and the ninth of his Nationwide career.
Rounding out the Top 5 were Michael Annett and Ricky Stenhouse Jr., who came up short in his bid for a fifth straight Iowa victory.
Sadler used the victory to increase his Nationwide lead to 18 points over Richard Childress Racing teammate Austin Dillon.