Defensive back Brandon Snyder returned an interception 89 yards for a touchdown and running back Akrum Wadley rushed for 115 yards and a TD on 23 carries, and added a scoring reception for the Hawkeyes (4-2, 1-2 Big Ten).
Stanley was 17 of 32 for 247 yards and an interception as Iowa won its fourth straight in the series and ninth in the last 10 meetings.
Sophomore quarterback Jeff George Jr., son of former NFL and Illinois signal-caller Jeff George, was 22-of-45 passing for 246 yards and three interceptions in his first start of the season for the Fighting Illini (2-3, 0-2). Freshman running back Mike Epstein gained 83 yards on seven carries for Illinois before leaving with a lower-body injury.
Wide receiver Nick Easley caught his team-leading fourth touchdown pass, a 5-yarder, which gave the Hawkeyes a 7-3 lead.
The Fighting Illini tied it 10-10 as freshman running back Ra'Von Bonner bulled in from the 2-yard line for his first career score to cap an 85-yard drive that featured 82 on the ground, including a 58-yard burst by Epstein.
Stanley had his string of 147 pass attempts without an interception halted when freshman defensive back Bennett Williams picked him off. Illinois turned it into a 24-yard field goal by Chase McLaughlin and a 13-10 advantage.
Iowa resorted to trickery to take a 17-13 halftime lead as a fake punt resulted in an 18-yard run by upback Amani Hooker. Five plays later, Stanley threw a 2-yard touchdown pass to Wadley with eight seconds left in the second quarter.
On the Fighting Illini's second possession of the second half, Snyder intercepted George's overthrown pass and raced untouched down the right sideline into the end zone.
The Hawkeyes put it away on Stanley's 39-yard touchdown pass to wide receiver Matt VandeBerg, who made the catch at the 22-yard line and outsprinted the defense to the goal line to make it 31-16 with 14:22 to go.