Matt Gatens added 11 points and a career-high 10 rebounds for the Hawkeyes (10-3), who finished their non-conference schedule a perfect 8-0 at home.
Iowa had trouble putting away the undersized Leathernecks, who didn't start a player taller than 6-foot-5. The Hawkeyes trailed by one at halftime and needed a 9-1 run midway in the second half to get some breathing room.
The Leathernecks got as close as 36-35 before Iowa held them scoreless for a 4 1/2-minute stretch. Devan Bawinkel's 3 put the Hawkeyes up 45-36 with 6:29 left, and Davis's dunk made it 53-43 with 2:02 to go.
David DuBois had 18 points to lead Western Illinois (4-8), which lost its third straight and fell to 0-8 against Iowa.
The Hawkeyes open Big Ten play at Ohio State on Dec. 31.