Live updates and video of scores:
James Madison 3, UND 0, 10:49 left: UND's drive-opening turnover -- a blown-up slant pass from Tommy Schuster to Adam Zavalney -- results in a JMU Ethan Ratke 43-yard field goal. Big play for the Fighting Hawks to force the long field came on third down when corner Evan Holm blitzed and led to a Noah Larson sack.
James Madison 10, UND 0, :30 left: James Madison marches on a methodical 13-play, 80-yard drive late in the quarter, punctuated by a 3-yard touchdown run from Perci Ageyi-Obese.
James Madison 10, UND 7, 13:12 left: A 45-yard run from Otis Weah on third-and-1 gives UND its first bit of momentum. A Tommy Schuster comeback route for 12 yards to Garett Maag puts UND inside the 10. A couple of plays later, UND brings in backup quarterback Quincy Vaughn, who rushes in from 5 yards out.
James Madison 17, UND 7, 10:18 left: James Madison having little problem marching on the UND defense. Cole Johnson hit Antwane Wells Jr. for a 38-yard gain over the defense of UND cornerback Caleb Nelson. That set up a 6-yard Agyei-Obese touchdown run up the middle.
James Madison 17, UND 14, 1:40 left: UND puts together a bizarre drive. After Dalton Gee nearly fumbled early in the drive but the call was overturned, UND runs a fake punt that draws JMU offsides. That leads to two more trick plays -- a double-lateral pass from Tommy Schuster to Adam Zavalney and a hook-and-ladder from Marcus Preston to Luke Skokna. The whole thing is finished off by a 10-yard Weah run up the middle.
James Madison 20, UND 14, :00 left: Ratke kicks one in from 32 yards out as the first half expires. A 43-yard pass from Cole Johnson to Kris Thornton gave JMU the ball at the UND 15.
James Madison 27, UND 14, 2:21 left: James Madison's offense strings together a big drive on its second offensive series of the second half. Dukes quarterback Cole Johnson hits Antwane Wells Jr. on a slant, and he bounces off a Kadon Kauppinen hit and scores from 19 yards out.
Great throw. Great catch. Really great effort. Cole and Antwane with the call.— JMU Football (@JMUFootball) May 3, 2021
James Madison 34, UND 14, 10:06 left: After a UND offsides penalty extends the JMU drive, the Dukes go deep to likely ice the game. Wells with a 63-yard catch down the sideline over top of the defense of UND corner C.J. Siegel.
James Madison 34, UND 21, 6:39 left: UND's offense is in hurry-up and a couple of back-shoulder throws to Garett Maag and Tyler Burian set up a Luke Skokna 5-yard touchdown run.