E'Twaun Moore scored 16 points and grabbed 10 rebounds and No. 20 Purdue outlasted the Hawkeyes 49-45 on Saturday.
JaJuan Johnson added 13 points, including a key late jumper, and the Boilermakers won their second straight after suffering back-to-back losses at Ohio State and Illinois.
Purdue has held its last two opponents under 50 points, and it had two late defensive stops to stave off a rally by the Hawkeyes (13-13, 3-10 Big Ten). The Boilermakers held Iowa to just one field goal in the final 4:38.
"In a grind-it-out, possession-type game you have to get stops, and we were able to get a lot of stops late in the game," Purdue coach Matt Painter said. "That's very important for this team."
The Boilermakers shot just 10-of-25 from the floor in the second half, including 1-of-9 from 3-point range. But Johnson buried an 18-footer to put the Boilermakers (19-6, 8-4) ahead 46-43 with 1:26 left, and Moore hit a pair of free throws with 3.1 seconds left to seal the win.
Jake Kelly led all scorers with 19 points for the Hawkeyes. They played without starting point guard Jeff Peterson, who has a strained hamstring, and forward Cyrus Tate, who hasn't fully recovered from a high ankle sprain.
Iowa lost for the sixth time in seven games and still hasn't beaten a ranked opponent this season.
"I wish we could have found a way to generate some offense in those last few possessions, but my hat goes off to Purdue," Iowa coach Todd Lickliter said. "When you get open looks you're surprised and hesitant."
Iowa had cut Purdue's lead to 44-43 and seemed poised to jump ahead when the Boilermakers defense stepped up. Purdue forced Iowa's Matt Gatens to take a 3 that bounced off the side of the backboard with just under two minutes left. After Johnson's jumper, Iowa's Jermain Davis chucked up an airball from 3-point range with the shot clock winding down.
Chris Kramer followed his own miss with an offensive rebound, and Keaton Grant hit a free throw to make it 47-43. Kelly dashed downcourt for a quick layup, but Moore followed with two from the line.
"You have to hang your hat on defense, because you're going to have nights like this where the ball doesn't go in," Painter said.
Purdue's Robbie Hummel, who missed the past three games with a hairline fracture in his lower back, played 24 minutes and scored two points.
Iowa chipped away at Purdue's slim lead for much of the second half, eventually tying the game at 37 on two free throws by David Palmer with 8:39 left. Kelly gave the Hawkeyes a 41-39 lead with a running layup, but Kramer followed with a layup and Grant hit a 3 to put the Boilermakers ahead 44-41 with just over five minutes left.
Purdue opened things up with an early 9-0 run, as Hummel found Johnson for a bucket in the paint and Lewis Jackson buried a jumper from the free-throw line to put the Boilermakers ahead 20-11.
Iowa then tightened up its defense, holding Purdue to just two field goals in the final 7:13 of the first half to pull within 25-20 by the break.
The Boilermakers have now won five straight over Iowa, which clearly missed Peterson. The Hawkeyes had just five assists on 17 field goals and shot 2-of-19 from 3-point range as they struggled to get anything going without their floor leader.
Of course, Purdue also had something to do with that.
"Sometimes the shots aren't going to fall, but you can always rebound and play defense," Moore said. "Those things never change."