Jacob Gilyard was brilliant for the Atlantic 10 champions, scoring 24 points, grabbing six rebounds and dishing out six assists as Richmond (23-12) remains undefeated in tournament play against fifth seeds.
The Spiders previously upset Auburn in 1984, Indiana in 1988 and Vanderbilt in 2011 as a 12 seed and ended Iowa's season much earlier than anyone expected.
The Hawkeyes were held to their third-lowest point total of the season while shooting just 36.4 percent from the field. All-American Keegan Murray was the high man with 21 points and nine rebounds.
Story of the game
Gilyard and Tyler Burton were the early offense for Richmond, scoring 12 of the Spiders' first 14 points as they held a narrow one-point lead. Burton hit three free throws just before halftime to stake his team to a 29-28 lead.
Out of the locker room, it was Gilyard, MVP of the Atlantic 10 tournament, that scored five straight points to increase the advantage to 34-28. Iowa responded with an 11-0 run, keyed by back-to-back three-pointers from Patrick McCaffery.
Richmond then hit back with 11 straight of their own as Nathan Cayo finished a fast break with a dunk and Gilyard canned a triple that bounced all around the rim before going in.
After Iowa closed the gap to one at 47-46, the Spiders again responded with a 7-0 run, Gilyard capping it off with a three to make it 54-46 with 6:13 left.
Again the Hawkeyes pulled to within 58-57, but an offensive rebound by Andre Gustavson and a second-chance bucket by Cayo made it 60-57.
Matt Grace had a big block at the other end and again Cayo drove to the hoop and finished, this time drawing a foul and converting on the free throw for the old-fashioned three-point play.
Iowa scored four quick points to make it a 63-61 game, but Gilyard stepped up to hit four free throws in the final 15 seconds to clinch another memorable NCAA Tournament victory.