Roy Devin Marble scored 22 points, Aaron White added 19 and No. 20 Iowa ended the game on a 22-9 run to hand No. 3 Ohio State its second loss of the week, 84-74 on Sunday.
Melsahn Besabe had 11 points and 10 rebounds, Mike Gesell added 11 points and Jarrod Uthoff had 10 off the bench for the Hawkeyes (14-3, 3-1 Big Ten), who ended a string of eight straight losses to the Buckeyes.
LaQuinton Ross scored 22 points, Amir Williams had 11 and Lenzelle Smith Jr. 10 for Ohio State (15-2, 2-2), which had opened with 15 consecutive wins. The Buckeyes fell 72-68 in overtime at No. 5 Michigan State on Tuesday night.
It was Iowa's first win over a top 5 team since an 83-65 victory at No. 2 Missouri on Dec. 15, 2001.