HARRISONBURG, Va. -- Ben DiNucci and James Madison didn't want to leave anything to chance.
A week after their high-scoring offense was limited to 17 points, the Dukes got that on their first three possession Saturday night in a 30-14 victory against Weber State that puts them in the Football Championship Subdivision national championship game.
"Any time you get points to start the game, it kind of sets the tone," said DiNucci, who threw for two touchdowns and ran for another.
The Dukes got a field goal on their first drive and touchdowns on their next two, each coming after forcing the Wildcats to run three plays and punt.
"We got off to such a slow start that the damage was done in the first quarter," Weber State coach Jay Hill said. "You can't get down 17-0 to those guys."
The Dukes (14-1) led 24-7 at halftime, added two second-half field goals and let their defense take care of the rest. The Wildcats managed just 256 yards of offense compared to 467 for the Dukes, who will face North Dakota State for the title. The Bison beat Montana State 42-14 earlier Saturday and have won seven of the last eight national titles.
The lone interruption? James Madison won it in 2016.
"We're not done yet," Dukes cornerback Rashad Robinson said.
Added first-year James Madison coach Curt Cignetti: "I still think we can play better."
Weber State (11-4) saw its playoff run end at Bridgeforth Stadium for the second time in three seasons, but unlike a last-second 31-28 loss in 2017, this one was never in question. James Madison at one point held a 199-11 advantage in yards and gave a very modest crowd plenty to cheer on a frigid evening.
DiNucci hit Riley Stapleton for touchdowns of 18 and 34 yards and also scored on a 1-yard run. Ethan Ratke, whose field goal won that 2017 game, added field goals of 32, 37 and 27 yards, giving him a Colonial Athletic Association single-season record of 25. Stapleton had nine catches for 162 yards.
The Wildcats' scores came on Kevin Smith's 2-yard catch from Jake Constantine after Weber State fell behind 17-0, and Constantine's 22-yard throw to Ty MacPherson with under 3 minutes remaining in the game.
Weber St.: The Wildcats figured to struggle offensively. They arrived 51st nationally in scoring offense and 89th in total offense and were facing a Dukes defense that led the nation in total defense (265.3 yards per game) and rushing defense (60.4).
James Madison: Already leading 17-7, the Dukes took the momentum into the locker room after a bizarre sequence to end the first half. First, James Madison passed on a 46-yard field goal try on fourth-and-3 from the 29 and DiNucci hit Polk for 15 yards. The Dukes then spiked the ball to stop the clock with 32 seconds left, got a delay of game penalty, then a holding call, then an incomplete pass, another delay of game and another incomplete pass, giving them a fourth-and-30 from the 34. Ratke's field goal try came up well short, but Weber State had called timeout before the kick, giving the Dukes another chance. This time, DiNucci hit Riley Stapleton in the end zone to make it 24-7.
Hill took the blame for the sequence, calling he timeout a "dumb call."
"That took the life out of us a little but," he said.
DiNucci, who transferred from Pitt two years ago, said returning to the national championship game brings the journey "full circle."
"One of the main reasons I decided to come here two years ago was for that opportunity. ... Just being able to be part of this whole thing is awesome."
James Madison will face North Dakota State, winner of seven of the last eight national championships, in the championship game on Jan. 11 in Frisco, Texas.