Cam Pedersen's 37-yard field goal as time expires gives the Bison the upset victory.
It's North Dakota State's sixth straight win against FBS opposition.
3:41 4th: Iowa 21, NDSU 20
North Dakota State went for the lead.
Iowa's defense was up to the task, stopping a go-ahead 2-point conversion attempt.
NDSU capped a superb 15-play, 80-yard drive in 8:39 with Easton Stick's play-action, 7-yard TD pass to Chase Morlock.
The Hawkeyes locked down in coverage, forcing Stick out of the pocket on the 2-point try. He was unable to run it in, then tossed up a pass that was batted in the air and eventually fell incomplete.
2:12 3rd: Iowa 21, NDSU 14
C.J. Beathard bought time, rolled to his right and put the Hawkeyes back in front with a 9-yard TD pass to Matt VandeBerg.
That's two TDs for MVB today, three for CJB.
BEATHARD SHAKEN UP
Iowa QB C.J. Beathard had to leave the game momentarily.
Beathard scrambled for a first down and took a big hit from two defenders, then was slow to get up and needed attention from trainers.
ESPN reported his left shoulder was looked at on the sideline and Beathard returned a few plays later.
True freshman Nathan Stanley filled in admirably with a 37-yard completion to George Kittle on his first play.
8:06 3rd: Iowa 14, NDSU 14
Waterloo native Lance Dunn broke a 35-yard run to the Iowa 3, then King Frazier busted across the goal line on 2nd down to deadlock the score at 14.
Desmond King stripped Dunn of the ball and thought he had forced a touchback by forcing it out of the end zone, but it was ruled (and upheld by replay) the ball went out of bounds before crossing the goal line.
8:05 2nd: Iowa 14, NDSU 7
The passing game has opened up for Iowa.
After a 51-yard completion to tight end George Kittle (that was fumbled and recovered by Jerminic Smith), C.J. Beathard found Matt VandeBerg for a 14-yard TD and Iowa's first lead.
NDSU allowed total of 544 passing yards to Charleston So. and E. Washington. Beathard was going to start piling numbers eventually, and has.