AMES, Iowa — Brock Purdy threw for 307 yards and two touchdowns and the Iowa State defense made a late stand in the closing minutes as the Cyclones knocked off No. 8 Oklahoma State 24-21 on Saturday.
Breece Hall scored the go-ahead touchdown with 5:29 left, then the Cyclones' defense forced a three-and-out and stopped the Cowboys on fourth down with 1:09 left.
Purdy kneeled twice in victory formation, and fans stormed the field at Jack Trice Stadium as the clock ran out to celebrate Iowa State's first win over a top-10 opponent since 2018.
It was the seventh straight Oklahoma State-Iowa State game decided by seven points or less.
Purdy completed 27 of 33 passes, and Xavier Hutchinson had a career-best 12 passes for 125 yards and two touchdowns for the Cyclones (5-2, 3-1 Big 12).
Spencer Sanders went 15 for 24 passing for Oklahoma State (6-1, 3-1), finishing with 225 yards and three touchdowns.
Iowa State led 17-14 in the fourth quarter and was driving to extended its lead until Malcolm Rodriguez and Jarrick Bernard-Converse stuffed Purdy on a fourth-and-2 run at the Cowboys' 42.
Four plays later, Tay Martin caught a 25-yard touchdown pass to put the Cowboys up 21-17.
Purdy then led the Cyclones on an 85-yard drive that Hall finished with his short TD run. Hall extended to 19 his Big 12 record for consecutive games with a rushing touchdown.
Will McDonald had back-to-back sacks to snuff the Cowboys' next series. Oklahoma State's final possession reached the Iowa State 45. On fourth-and-2, Sanders passed to Brennan Presley, but Isheem Young and Kym-Mani King combined to keep Presley inches short. The spot of the ball stood after a video review.
Presley caught two touchdown passes in the first half and finished with 84 receiving yards.
His first touchdown came on a 5-yard toss from Sanders, giving Oklahoma State a 7-0 lead. On his second TD, the 5-foot-8 Presley leapt over two defenders and landed in the end zone, putting the Cowboys up 14-7 at half.
Hutchinson scored Iowa State's lone touchdown of the first half on a 1-yard pass from Purdy.
Hutchinson appeared to score on a 54-yard pass early in the third period, but he was penalized for unsportsmanlike conduct for taunting before he reached the end zone.
That placed the ball on the Oklahoma State 18, and three plays later Hutchinson caught a tying 9-yard touchdown pass, stopping in the back corner of the end zone to blow a kiss to fans.
Iowa State, Oklahoma State and Baylor are all tied for second place in the Big 12 behind Oklahoma.
Oklahoma State: The Cowboys' defense had no answer for Hutchinson, who took advantage of mostly man coverage, and the offense converted only 2 of 10 third downs.
Iowa State: The Cyclones won their third straight game and first over a top-10 opponent since they beat then-No. 6 West Virginia on Oct. 13, 2018.
Iowa State probably will be back in the Top 25 after a four-week absence. Oklahoma State, which had won four one-score games this season, likely will fall out of the top 10.
Oklahoma State hosts Kansas on Oct. 30.
Iowa State visits West Virginia on Oct. 30.
More AP college football coverage: https://apnews.com/hub/college-football and https://twitter.com/AP--Top25. Sign up for the AP’s college football newsletter: https://apnews.com/cfbtop25.