IOWA CITY -- John Beilein knew 11 months ago.
It was just after Beilein's Michigan basketball team had eliminated Iowa in the Big Ten Tournament. The Wolverines were on their way to an eventual spot in the national championship game, the Hawkeyes were headed home from New York with a 14-19 record.
Beilein ran into Iowa coach Fran McCaffery after the game. Two coaches were headed in opposite directions, but Beilein saw the reversal for McCaffery coming.
"'You're going to have a lot of fun with this team next year with this young team you have,'" McCaffery said Beilein told him. "Which was a really classy thing to say."
Beilein knew. He hinted at it at Big Ten media day, when he pondered, without naming the Hawkeyes, how teams with almost everyone back could be picked so low in the Big Ten.
So, Iowa's 74-59 win over the fifth-ranked Hawkeyes on Friday night at Carver-Hawkeye Arena was exactly what Beilein thought could happen.
COLLEGE BASKETBALL TOP 10: Marquette’s muscled its way into the Top 10 and is a legit Big East threat
"I saw it on film," Beilein said. "I saw it coming last year."
You could see this one coming from the beginning of the game. The Hawkeyes (17-5 overall, 6-5 Big Ten) controlled the Wolverines (20-2, 9-2) in a way no one else had this season.
Michigan, ranked No. 2 in NCAA Division I in scoring defense, had allowed an average of 56.1 points per game. The Hawkeyes roared past that, scoring the most points of any Big Ten team against the Wolverines this season.
The Wolverines also shot 32.1 percent, their worst game of the season. They were puzzled by the chemistry of various zone defenses of the Hawkeyes.
It's why Beilein and his team could only walk away from the post-game court-storming that morphed into an impromptu dance party with the Hawkeyes right in the middle.
"Man, it was crowded," said Iowa forward Ryan Kriener, who posted his first career double-double -- 15 points, 10 rebounds -- on a night when Iowa needed all of that with forward Luka Garza in first-half foul trouble. "People were pushing, shoving..."
"Nah," Kriener said. "It was fun."
It was Iowa's first win over a top-five team since a 76-59 win over No. 4 Michigan State in 2016.
The Hawkeyes snapped a two-game losing streak. They've skidded twice this season in Big Ten play -- three losses to start the first half of the conference schedule, two to end it -- yet have found a way to respond.
This answer, against one of the nation's best teams, was the best.
"We've been through a lot with this group," McCaffery said.
The last two losses stung. The Hawkeyes staggered a top-10 Michigan State team for 24-plus minutes last Thursday before getting swept away by the Spartans' trademark whirlwind, then they had an awful defensive performance in Sunday's loss at Minnesota.
McCaffery went down the checklist of this victory -- the Hawkeyes' concoction of full-court and half-court defenses, the play of players like Kriener off the bench, the dominance of Garza in the second half, the maturity of freshman Joe Wieskamp all night.
"And that's what you need if you're going to beat Michigan," McCaffery said.
"We have that mindset," Garza said of the meaning of vanquishing a top-five team. "It was good to get a taste of that."
Garza, who finished the game with 19 points and eight rebounds, played just 6:38 of the first half after picking up two fouls. He was on the bench for Iowa's 21-2 run in the half that put the Hawkeyes in command, a stretch sparked by Wieskamp, who had nine consecutive points.
IOWA-MICHIGAN: Stats and highlights from the Big Ten upset
Wieskamp, who scored just eight points in the last two games, finished this game with 16.
"Personally," he said, "I needed this."
Kriener gave Iowa a critical 22 minutes, never swayed by Michigan's frontcourt. He was 6-of-9 from the field, a stunning mismatch for a team known for its defense.
"He helped me out," Garza said, "because he was out there killing them."
The Hawkeyes are learning. They let the game against Michigan State get away in the second half because of a 24-2 run by the Spartans.
In this game, after Michigan closed to within 54-49, the Hawkeyes went on an 11-2 burst, with eight of those points coming from Garza.
"We looked at it and said, 'Michigan State isn't happening today,'" Kriener said.
"They were going to make a run and they came at us in the second half," McCaffery said. "But we withheld it."
"We knew they were going to make a run," Wieskamp said. "We couldn't let it get too big."
THE BRACKET: Print the official 2019 March Madness bracket
The party at mid-court had long since broken up when Beilein kept saying what he had been saying all along.
"Iowa's just a really good team," he said. "We got beat by a really good team.
"They're a good team," Beilein continued. "They're a great team."
McCaffery thought back to that March day at Madison Square Garden.
"I don't think he said it to make me feel good," he said. "I think he really believed that. So the fact that he said what he said tonight, I think it's indicative of what he thinks about our team.
"And I appreciate that."
This article is written by John Bohnenkamp from The Hawk Eye, Burlington, Iowa and was legally licensed via the Tribune Content Agency through the NewsCred publisher network. Please direct all licensing questions to firstname.lastname@example.org.