The Hawkeyes (7-3, 4-2 Big Ten) ran for a season-high 304 yards. Quarterback Jake Rudock was 14-21 for 210 yards and two touchdowns before leaving in the fourth quarter with the game in hand.
Early on, Iowa had to scrounge for points. The Hawkeyes took a 2-0 lead on a first-quarter safety and Illinois' defense stopped them three times on fourth down to keep the game close. Iowa led 9-7 at the half.
But Iowa's run game wore Illinois (4-6, 1-5) down and set up 21 second-half points that sealed the game.
Illinois quarterback Wes Lunt played for the first time since breaking his left leg Oct. 4 against Purdue. But he finished a quiet 14-25 for 102 yards and one touchdown.
Iowa's offense Saturday was a steady diet of Weisman broken up only by the occasional big pass play from Rudock or backup C.J. Beathard, who entered the game in the fourth quarter.
Between them the Hawkeye quarterbacks had three completions of 39 yards or longer
Midway through the third quarter, it all started to take its toll on an Illinois defense that had given up big yards but managed to keep the game close.
Rudock capped an 11-play, 71-yard drive with a short toss to tight end Ray Hamilton, who bulled into the end zone through two defenders for a 6-yard touchdown and a 16-7 lead.
From there the dominoes started falling for Iowa and against the Illini.
With 13:41 left, Rudock hammered Illinois again, this time rolling to his left and taking the ball in himself for a 6-yard touchdown and a 23-7 lead.
That was all the Hawkeyes would need.
Coming off a bye week, Illinois' offense looked less than ready to play.
Lunt hadn't played in weeks, and two of Illinois' starting linemen, left tackle Simon Cvijanovich and right guard Ted Karras, were out, too. Both were injured in the loss to Ohio State, and Karras is gone for the season.
The Illini talked in the week leading up the game about the need to run the ball to protect Lunt, but as offensive coordinator Bill Cubit has said all season, the team isn't built to run.
And it showed.
The Illini ran the ball 25 times for 88 yards, most of before the game got out of hand.
Lunt didn't face heavy pressure and didn't take a big hit. But he didn't throw down field often, either.
Illinois also hurt itself with a series of first-half penalties that cost them field position and, ultimately, led to the safety when Lunt threw the ball away in his own end zone.
Illinois was flagged eight times for 59 yards. Iowa had just one penalty.
Illini receiver Mike Dudek caught six balls for 80 yards. He scored both of Illinois' touchdowns, including a beauty late in the first quarter that gave the Illini a 7-2 lead.
Iowa cornerback Demond King rang stride for stride with Dudek down the right sideline but the freshman receiver leaned back to give himself just enough space to haul the ball in in the end zone.
The win keeps Iowa within reach of the two teams ahead of it in the Big Ten West standings, Wisconsin and Nebraska. The Hawkeyes close the season with home games against both, starting next Saturday with the Badgers.
Illinois entered the game knowing it had three shots to get the two wins it needs to get to six, win bowl eligibility and perhaps keep Tim Beckman and his staff employed. The coach has been the subject of job-security questions all season.
The loss means the Illini would need to beat Penn State at home next Saturday and Northwestern on the road on the regular-season finale to get there.