Aaron White had 18 points and nine rebounds and Iowa beat Purdue 58-48 on Wednesday night for its fourth win in five games.
Devyn Marble also had 18 for the Hawkeyes (18-10, 7-8 Big Ten), who put an ugly loss at Nebraska behind them ahead of this weekend's trip to top-ranked Indiana.
Iowa never trailed in avenging an overtime defeat at Purdue late last month. The Boilermakers (13-15, 6-9) got as close as 49-43, but poor shooting doomed them to their sixth loss in eight games.
Iowa played without freshman starter Mike Gesell, who was out with a right foot injury.
Donnie Hale had 13 points to lead Purdue, which dropped a game behind Iowa in the race for seeding for the upcoming Big Ten tournament.
The Boilermakers got within 38-31 midway through the second half and appeared poised catch the Hawkeyes. But Zach McCabe bailed them out with a 3-pointer, Eric May added a jumper and Iowa went back ahead by double digits.
Purdue occasionally threatened Iowa's lead after that, but the Hawkeyes never let it get close to slipping away.
A.J. Hammons had 12 points for Purdue, which shot just 36.5 percent. Iowa shot even worse at 31 percent, but the Hawkeyes got to the free throw line for 29 shots and made 21.
Until last weekend, the Hawkeyes were in the midst of a late run to NCAA tournament consideration.
A crushing loss to the Cornhuskers on Saturday changed all that.
Iowa blew a 19-point lead and fell 64-60, all but guaranteeing that an NIT bid is the best the program can realistically hope for right now.
The disappointment of a once charged-up fan base was evident. After selling out its last home game, a 20-point win over Minnesota, Iowa had wide swaths of empty seats.
The crowd was nearly 4,000 fans smaller than it was for the Gophers.
Purdue hasn't been in top form lately, either. A 31-point win over reeling Northwestern had been preceded by three straight losses of at least 13 points.
The recent malaise affecting both programs was evident in the first half.
The opening 20 minutes played out more like a November slugfest than a matchup of two teams from the nation's toughest league.
Terone Johnson, who had to be helped off after an apparent left foot injury early in the first half, came back and airballed a 3 on his first attempt. That miss - along with a matching airball from Iowa's Zach McCabe a few minutes later - symbolized a sloppy start that saw Iowa jump ahead 23-16 despite missing 22 of 28 shots.
But the Hawkeyes shot 43.5 percent in the second half and cruised to their fifth straight home win.
Terone Johnson, Purdue's leading scorer, was held scoreless for the first time this season.
D.J. Byrd had 11 points, but he was just 3 of 10 from 3-point range.