But they couldn't do the same on offense without leading scorer Devyn Marble, and now Iowa is 0-3 in a league that promises few easy nights this season.
Branden Dawson scored a career-high 17 points, including a late steal and tiebreaking dunk that helped No. 22 Michigan State beat Iowa 62-59 on Thursday.
Gary Harris had 14 points for the Spartans (13-3, 2-1 Big Ten), who hung on late for their eighth win in nine games.
Iowa was markedly stronger on defense that it was in losing at No. 2 Michigan 95-67 last weekend. But the Hawkeyes committed 18 turnovers and shot just 4 of 16 from 3-point range.
"Didn't play with any toughness. No, did not. And that's disappointing. Offensively we played with no toughness whatsoever. Defensively, we did. On the glass, we did. But you have the other end of the floor," McCaffery said. "Can't turn the ball over 18 times. They don't change defenses. They don't press. You can't turn the ball over 18 times, because when you do it's dunks and layups."
The biggest dunk came when Dawson ripped the ball away from Iowa freshman Mike Gesell and gave Michigan State a 58-56 lead with 49 seconds left.
Anthony Clemmons missed a free throw that would have tied it with 12 seconds to go and airballed a 3-pointer at the buzzer as Iowa (11-5, 0-3) lost its third straight.
Zach McCabe led Iowa with 15 points and fellow reserve Melsahn Basabe added 14 in place of Marble, who sprained his ankle in practice this week and is questionable for Sunday's game at Northwestern.
"It was tough offensively to get the kind of rhythm we needed. You know, they're a very physical team defensively, and you need a guy who can break his man down and get to the rim and get to the free throw line," McCaffery said of Marble's absence.
For whatever reason, Michigan State and Iowa have made a habit of teaming up for some ugly basketball in recent years.
The play was brutal at times on Thursday.
The Spartans and Hawkeyes slogged through a series of sloppy possessions early in the second half, with Michigan State slowly chipping away at Iowa's slim lead.
The Spartans finally took their first lead, 43-42, on a nifty layup by Keith Appling off yet another Iowa turnover with just under 9 minutes left. Harris followed with a 3, and Adreian Payne drove the lane and threw down an emphatic one-handed dunk to put the Spartans ahead 48-45 with 6:15 left.
Michigan State blew the lead but tied it back up at 56 on Harris' three free throws with 1:04 left.
Appling had 12 points, including four free throws in the final 20 seconds.
McCaffery openly questioned his team's effort after the blowout loss in Ann Arbor. The Hawkeyes got the message early.
Iowa opened with a 7-0 run and hit nine of its first 12 shots in building an early 10-point advantage. Aaron White—whose poor defense against the Wolverines was a particular sore spot for McCaffery—then jumped a passing lane for a transition dunk and a 24-12 lead.
But the Hawkeyes couldn't sustain their early energy level, and Michigan State pulled to 28-24.
White had 11 points for Iowa, which hasn't been consistent enough to record that crucial first Big Ten win.
"Clearly, they've got the message on defense. We were tough on defense. We guarded them and we rebounded with them and blasted them, but it's a different kind of toughness. It's a mental toughness, and an understanding of how you've got to run certain things offensively," McCaffery said.
Follow Luke Meredith on Twitter: http://www.twitter.com/LukeMeredithAP