South Dakota State at North Dakota State

Saturday, December 21, 2024, FCS Championship – Semifinals, CFP Semifinal

North Dakota State beat South Dakota State 28–⁠21. It was their 25th meeting; after it, North Dakota State led the series 15–⁠10.

AwaySouth Dakota State12–⁠3 in 2024
21
HomeNorth Dakota State14–⁠2 in 2024
28

Final at Fargodome, FargoIndoorsTV: ABC, ESPN+Attendance 17,849

Official
Jeff PageGame officials: stats.ncaa.org box scores, via SportsDataverse

Scoring by quarter

TeamQ1Q2Q3Q4Final
South Dakota State770721
North Dakota State7701428

Standouts

  • PassingCam Miller13 of 19, 179 yards, 3 TDNorth Dakota State
  • RushingCam Miller15 carries, 93 yards, 1 TDNorth Dakota State
  • ReceivingBryce Lance6 catches, 125 yards, 3 TDNorth Dakota State

Photos: Wikimedia Commons, free licenses; credits on each player’s page.

Player stats

South Dakota State

PassingC/AttYdsTDInt
Mark Gronowski14/2520410
Chase Mason0/1000
RushingCarYdsTDLong
Amar Johnson1577139
Mark Gronowski1550111
Chase Mason3203
Kirby Vorhees5103
ReceivingRecYdsTDLong
Griffin Wilde466027
Lofton O’Groske135035
Greyton Gannon333014
Amar Johnson330031

North Dakota State

PassingC/AttYdsTDInt
Cam Miller13/1917930
RushingCarYdsTDLong
Cam Miller1593125
Barika Kpeenu628012
CharMar Brown112304
Jackson Williams112012
ReceivingRecYdsTDLong
Bryce Lance6125347
T.K. Marshall120020
Chris Harris117017
Barika Kpeenu21108

From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.

Team stats

South Dakota StateNorth Dakota State
333Total yards329
204Passing yards179
129Rushing yards150
7.8Yards per pass9.4
3.2Yards per rush4.1
18First downs19
8–⁠15Third downs7–⁠12
1–⁠3Fourth downs0–⁠0
1Turnovers0
3–⁠40Penalties3–⁠15
29:39Possession29:10

Efficiency

South Dakota StateNorth Dakota State
36%Success rate45%
0.10EPA per play0.28
1.55Explosiveness1.41
−0.03Rushing EPA0.18
0.30Passing EPA0.47
41%Passing-down success27%

From CollegeFootballData.com: each offense’s efficiency, and the havoc each defense caused. The better side of each line is bold.

Before kickoff

Our ratings and the line, going in

Our ratings (scores only)

South Dakota State 51% to win. North Dakota State won as Elo’s underdog.

The line

South Dakota State −3.5, over/under 49.5.

The last line on file before kickoff: the consensus line when the books publish one, otherwise a single major sportsbook’s.

Every drive

North Dakota State end zoneSouth Dakota State end zoneQ1 South Dakota StatePunt, 3 playsQ1 North Dakota StateTouchdown, 7 playsQ1 South Dakota StateTouchdown, 10 playsQ1 North Dakota StatePunt, 3 playsQ1 South Dakota StateTouchdown, 11 playsQ2 North Dakota StatePunt, 8 playsQ2 South Dakota StateFumble, 2 playsQ2 North Dakota StateTouchdown, 7 playsQ2 South Dakota StateTurnover on downs, 9 playsQ3 North Dakota StatePunt, 5 playsQ3 South Dakota StatePunt, 3 playsQ3 North Dakota StatePunt, 3 playsQ3 South Dakota StatePunt, 5 playsQ3 North Dakota StatePunt, 10 playsQ3 South Dakota StatePunt, 3 playsQ4 North Dakota StateTouchdown, 3 playsQ4 South Dakota StateTouchdown, 10 playsQ4 North Dakota StateTouchdown, 8 playsQ4 South Dakota StateTurnover on downs, 10 playsQ4 North Dakota StateResult not recorded, 2 plays
Solid bars scored; an outline in the other team’s color marks points the defense scored. North Dakota State drives left to right, South Dakota State right to left.
  1. Q1 South Dakota StatePunt, 3 plays, 2 yards
  2. Q1 North Dakota StateTouchdown, 7 plays, 80 yards
  3. Q1 South Dakota StateTouchdown, 10 plays, 75 yards
  4. Q1 North Dakota StatePunt, 3 plays, 4 yards
  5. Q1 South Dakota StateTouchdown, 11 plays, 86 yards
  6. Q2 North Dakota StatePunt, 8 plays, 25 yards
  7. Q2 South Dakota StateFumble, 2 plays, 0 yards
  8. Q2 North Dakota StateTouchdown, 7 plays, 23 yards
  9. Q2 South Dakota StateTurnover on downs, 9 plays, 30 yards
  10. Q3 North Dakota StatePunt, 5 plays, 27 yards
  11. Q3 South Dakota StatePunt, 3 plays, 8 yards
  12. Q3 North Dakota StatePunt, 3 plays, 4 yards
  13. Q3 South Dakota StatePunt, 5 plays, 27 yards
  14. Q3 North Dakota StatePunt, 10 plays, 35 yards
  15. Q3 South Dakota StatePunt, 3 plays, 4 yards
  16. Q4 North Dakota StateTouchdown, 3 plays, 70 yards
  17. Q4 South Dakota StateTouchdown, 10 plays, 90 yards
  18. Q4 North Dakota StateTouchdown, 8 plays, 75 yards
  19. Q4 South Dakota StateTurnover on downs, 10 plays, 6 yards
  20. Q4 North Dakota StateResult not recorded, 2 plays, −4 yards

Play by play

1st quarter5 drives, then Tied at 7
South Dakota State Punt, 3 plays
15:00Eli Ozick kickoff for 64 yds , Maxwell Woods return for 23 yds to the SDST 24
14:541st & 10 at own 24Amar Johnson run for 2 yds to the SDST 26
14:142nd & 8 at own 26Amar Johnson run for no gain to the SDST 26
13:313rd & 8 at own 26Mark Gronowski pass incomplete
13:264th & 8 at own 26Hunter Dustman punt for 59 yds , Jackson Williams returns for 5 yds to the NDSU 20
North Dakota State Touchdown, 7 plays
13:131st & 10 at own 20Cam Miller pass complete to TK Marshall for 20 yds to the NDSU 40 for a 1ST down
12:231st & 10 at own 40TK Marshall run for 1 yd to the NDSU 41
11:482nd & 9 at own 41Cam Miller pass complete to Truman Werremeyer for a loss of 1 yard to the NDSU 40
11:073rd & 10 at own 40Cam Miller pass complete to Bryce Lance for 30 yds to the SDST 30 for a 1ST down
10:321st & 10 at opp 30Cam Miller run for 7 yds to the SDST 23
10:232nd & 3 at opp 23CharMar Brown run for 2 yds to the SDST 21
9:343rd & 1 at opp 21Cam Miller pass complete to Bryce Lance for 21 yds for a TD (Griffin Crosa KICK)North Dakota State 7, South Dakota State 0
South Dakota State Touchdown, 10 plays
9:34Timeout North Dakota State, clock 09:34
9:34Eli Ozick kickoff for 65 yds for a touchback
9:331st & 10 at own 25Mark Gronowski pass incomplete
9:252nd & 10 at own 25Mark Gronowski run for 4 yds to the SDST 29
8:423rd & 6 at own 29Mark Gronowski pass complete to Griffin Wilde for 17 yds to the SDST 46 for a 1ST down
8:021st & 10 at own 46Chase Mason run for 3 yds to the SDST 49
7:272nd & 7 at own 49Kirby Vorhees run for 3 yds to the NDSU 48
6:483rd & 4 at opp 48Mark Gronowski run for 7 yds to the NDSU 41 for a 1ST down
6:111st & 10 at opp 41Mark Gronowski pass complete to Lofton O’Groske for 35 yds to the NDSU 6 for a 1ST down
5:271st & goal at opp 6Amar Johnson run for 3 yds to the NDSU 3
4:472nd & goal at opp 3Amar Johnson run for 2 yds to the NDSU 1
4:143rd & goal at opp 1Mark Gronowski run for 1 yd for a TD (Hunter Dustman KICK)Tied at 7
4:14Timeout North Dakota State, clock 04:14
North Dakota State Punt, 3 plays
4:14Hunter Dustman kickoff for 49 yds , TK Marshall return for 15 yds to the NDSU 31
4:101st & 10 at own 31CharMar Brown run for 3 yds to the NDSU 34
3:352nd & 7 at own 34Cam Miller pass incomplete
3:293rd & 7 at own 34Cam Miller run for 6 yds to the NDSU 40
2:494th & 1 at own 40North Dakota State Penalty, False Start (-5 Yards) to the NDSU 35
2:444th & 6 at own 35Kaedin Steindorf punt for 51 yds, downed at the SDST 14
2:351st & 10 at own 14Timeout North Dakota State, clock 02:35
South Dakota State Touchdown, 11 plays
2:341st & 10 at own 14Amar Johnson run for 5 yds to the SDST 19
1:542nd & 5 at own 19Mark Gronowski run for 6 yds to the SDST 25 for a 1ST down
1:141st & 10 at own 25Mark Gronowski pass incomplete
1:092nd & 10 at own 25Amar Johnson run for 11 yds to the SDST 36 for a 1ST down
0:271st & 10 at own 36North Dakota State Penalty, Offsides (5 Yards) to the SDST 41
0:111st & 5 at own 41Kirby Vorhees run for 2 yds to the SDST 43
Q2 14:592nd & 3 at own 43Mark Gronowski run for 5 yds to the SDST 48 for a 1ST down
Q2 14:171st & 10 at own 48Mark Gronowski pass complete to Maxwell Woods for 6 yds to the NDSU 46
Q2 13:442nd & 4 at opp 46Timeout North Dakota State, clock 13:44
Q2 13:432nd & 4 at opp 46Kirby Vorhees run for a loss of 2 yards to the NDSU 48
Q2 13:003rd & 6 at opp 48Mark Gronowski run for 5 yds to the NDSU 43
Q2 12:184th & 1 at opp 43Mark Gronowski run for 4 yds to the NDSU 39 for a 1ST down
Q2 11:291st & 10 at opp 39Amar Johnson run for 39 yds for a TD (Hunter Dustman KICK)South Dakota State 14, North Dakota State 7
2nd quarter4 drives, then Tied at 14
North Dakota State Punt, 8 plays
11:29Hunter Dustman kickoff for 65 yds , TK Marshall return for 14 yds to the NDSU 14
11:231st & 10 at own 14Cam Miller run for 7 yds to the NDSU 21
10:522nd & 3 at own 21Cam Miller run for 8 yds to the NDSU 29 for a 1ST down
10:121st & 10 at own 29Barika Kpeenu run for 7 yds to the NDSU 36
9:352nd & 3 at own 36TK Marshall run for a loss of 3 yards to the NDSU 33
8:533rd & 6 at own 33Cam Miller run for 10 yds to the NDSU 43 for a 1ST down
8:091st & 10 at own 43CharMar Brown run for 1 yd to the NDSU 44
7:282nd & 9 at own 44Cam Miller pass complete to Barika Kpeenu for 3 yds to the NDSU 47
6:423rd & 6 at own 47Cam Miller sacked by Kobe Clayborne for a loss of 8 yards to the NDSU 39
6:104th & 14 at own 39Kaedin Steindorf punt for 44 yds , Tucker Large returns for 6 yds to the SDST 23
6:011st & 10 at own 23Timeout North Dakota State, clock 06:01
South Dakota State Fumble, 2 plays
5:591st & 10 at own 23Chase Mason run for 3 yds to the SDST 26
5:232nd & 7 at own 26Amar Johnson run for a loss of 3 yards to the SDST 23 Amar Johnson fumbled, recovered by NDSU Loshiaka Roques L. Roques return for 0 yds
North Dakota State Touchdown, 7 plays
5:151st & 10 at opp 23Cam Miller pass complete to Bryce Lance for 11 yds to the SDST 12 for a 1ST down
4:461st & 10 at opp 12Barika Kpeenu run for 4 yds to the SDST 8
4:032nd & 6 at opp 8CharMar Brown run for 4 yds to the SDST 4
3:203rd & 2 at opp 4CharMar Brown run for 3 yds to the SDST 1 for a 1ST down
2:561st & goal at opp 1Cam Miller run for no gain to the SDST 1
2:132nd & goal at opp 1CharMar Brown run for a loss of 1 yard to the SDST 2
2:003rd & goal at opp 2Timeout North Dakota State, clock 02:00
1:573rd & goal at opp 2Cam Miller run for 2 yds for a TD (Griffin Crosa KICK)Tied at 14
1:57Timeout North Dakota State, clock 01:57
South Dakota State Turnover on downs, 9 plays
1:57Eli Ozick kickoff for 63 yds , Maxwell Woods return for 24 yds to the SDST 26
1:491st & 10 at own 26Mark Gronowski pass complete to Amar Johnson for a loss of 2 yards to the SDST 24
1:212nd & 12 at own 24Amar Johnson run for 13 yds to the SDST 37 for a 1ST down
1:111st & 10 at own 37Timeout North Dakota State, clock 01:11
1:101st & 10 at own 37Mark Gronowski pass complete to Greyton Gannon for 11 yds to the SDST 48 for a 1ST down
0:561st & 10 at own 48Mark Gronowski pass incomplete
0:512nd & 10 at own 48Mark Gronowski pass complete to Griffin Wilde for 10 yds to the NDSU 42 for a 1ST down
0:381st & 10 at opp 42Kirby Vorhees run for a loss of 1 yard to the NDSU 43
0:382nd & 11 at opp 43Timeout North Dakota State, clock 00:38
0:372nd & 11 at opp 43Mark Gronowski pass incomplete
0:313rd & 11 at opp 43Mark Gronowski run for 1 yd to the NDSU 42
0:194th & 10 at opp 42Timeout North Dakota State, clock 00:19
0:004th & 10 at opp 42[SG] Kneel down by GRONOWSKI, Mark at NDSU44 (team loss of 2); SDSU turnover on downs, clock 00:00.
3rd quarter6 drives, then Tied at 14
North Dakota State Punt, 5 plays
15:00Hunter Dustman kickoff for 63 yds
14:581st & 10 at own 25Cam Miller run for 9 yds to the NDSU 34
14:412nd & 1 at own 34Cam Miller pass complete to Chris Harris for 17 yds to the SDST 49 for a 1ST down
14:021st & 10 at opp 49Cam Miller run for 5 yds to the SDST 44
13:212nd & 5 at opp 44Cam Miller pass complete to RaJa Nelson for a loss of 4 yards to the SDST 48
12:383rd & 9 at opp 48Cam Miller pass incomplete
12:324th & 9 at opp 48Kaedin Steindorf punt for 48 yds for a touchback
12:271st & 10 at opp 20Timeout North Dakota State, clock 12:27
South Dakota State Punt, 3 plays
12:251st & 10 at own 20Amar Johnson run for a loss of 3 yards to the SDST 17
11:432nd & 13 at own 17Mark Gronowski pass complete to Griffin Wilde for 12 yds to the SDST 29
10:553rd & 1 at own 29Kirby Vorhees run for a loss of 1 yard to the SDST 28
10:194th & 2 at own 28Hunter Dustman punt for 50 yds, fair catch by Jackson Williams at the NDSU 22
North Dakota State Punt, 3 plays
10:121st & 10 at own 22CharMar Brown run for 2 yds to the NDSU 24
9:322nd & 8 at own 24Cam Miller pass incomplete
9:273rd & 8 at own 24Cam Miller run for 2 yds to the NDSU 26
8:524th & 6 at own 26Kaedin Steindorf punt for 46 yds, fair catch by Tucker Large at the SDST 28
8:471st & 10 at own 28Timeout North Dakota State, clock 08:47
South Dakota State Punt, 5 plays
8:461st & 10 at own 28Mark Gronowski pass incomplete
8:412nd & 10 at own 28Mark Gronowski pass complete to Davin Stoffel for 20 yds to the SDST 48 for a 1ST down
8:041st & 10 at own 48Chase Mason run for a loss of 4 yards to the SDST 44
7:242nd & 14 at own 44Mark Gronowski pass incomplete
7:173rd & 14 at own 44Mark Gronowski run for 11 yds to the NDSU 45
6:364th & 3 at opp 45Hunter Dustman punt for 37 yds, fair catch by Jackson Williams at the NDSU 8
6:301st & 10 at own 8Timeout North Dakota State, clock 06:30
North Dakota State Punt, 10 plays
6:281st & 10 at own 8CharMar Brown run for 2 yds to the NDSU 10
5:462nd & 8 at own 10CharMar Brown run for 4 yds to the NDSU 14
5:063rd & 4 at own 14Cam Miller pass complete to Bryce Lance for 6 yds to the NDSU 20 for a 1ST down
4:241st & 10 at own 20CharMar Brown run for 1 yd to the NDSU 21
3:422nd & 9 at own 21Cam Miller run for 12 yds to the NDSU 33 for a 1ST down
3:161st & 10 at own 33Barika Kpeenu run for 3 yds to the NDSU 36
2:352nd & 7 at own 36Cam Miller pass complete to Barika Kpeenu for 8 yds Barika Kpeenu fumbled, recovered by NDSU Mekhi Collins M. Collins return for 0 yds for a 1ST down
2:041st & 10 at own 44Barika Kpeenu run for a loss of 1 yard to the NDSU 43
1:252nd & 11 at own 43Cam Miller pass incomplete
1:203rd & 11 at own 43Cam Miller pass incomplete
1:144th & 11 at own 43Kaedin Steindorf punt for 48 yds , Dalys Beanum returns for 7 yds to the SDST 16
South Dakota State Punt, 3 plays
1:031st & 10 at own 16Mark Gronowski pass incomplete
1:002nd & 10 at own 16(01:00) GRONOWSKI, Mark pass to the right complete for 4 yards to JOHNSON, Amar caught at the SDSU13 and advanced to the SDSU20 (CRUMBY, Jaylin;SIBOMANA, Enock), clock 00:53. PENALTY NDSU Offsides on ANENE, Toby enforced 5 yards from the SDSU16 to the SDSU21 [SG]. NO PLAY (replay the down).
0:392nd & 5 at own 21Amar Johnson run for a loss of 2 yards to the SDST 19
Q4 14:583rd & 7 at own 19Mark Gronowski run for 1 yd to the SDST 20
Q4 14:194th & 6 at own 20Hunter Dustman punt for 50 yds, fair catch by Jackson Williams at the NDSU 30
4th quarter5 drives, then North Dakota State 28, South Dakota State 21
North Dakota State Touchdown, 3 plays
14:121st & 10 at own 30Jackson Williams run for 12 yds to the NDSU 42 for a 1ST down
13:371st & 10 at own 42Cam Miller pass complete to RaJa Nelson for 11 yds to the SDST 47 for a 1ST down
12:561st & 10 at opp 47Cam Miller pass complete to Bryce Lance for 47 yds for a TD (Griffin Crosa KICK)North Dakota State 21, South Dakota State 14
12:56Timeout North Dakota State, clock 12:56
South Dakota State Touchdown, 10 plays
12:56Eli Ozick kickoff for 63 yds , Maxwell Woods return for 22 yds to the SDST 10
12:481st & 10 at own 10Amar Johnson run for 2 yds to the SDST 12
12:192nd & 8 at own 12Chase Mason pass incomplete
12:143rd & 8 at own 12Mark Gronowski pass complete to Griffin Wilde for 27 yds to the SDST 39 for a 1ST down
11:301st & 10 at own 39Maxwell Woods run for 1 yd to the SDST 40
10:482nd & 9 at own 40Amar Johnson run for a loss of 1 yard to the SDST 39
10:083rd & 10 at own 39Mark Gronowski pass complete to Greyton Gannon for 14 yds to the NDSU 47 for a 1ST down
9:311st & 10 at opp 47Mark Gronowski pass complete to Amar Johnson for 31 yds to the NDSU 16 for a 1ST down
9:161st & 10 at opp 16Timeout North Dakota State, clock 09:16
9:141st & 10 at opp 16Mark Gronowski pass incomplete
9:092nd & 10 at opp 16Mark Gronowski run for 2 yds to the NDSU 14
8:203rd & 8 at opp 14Mark Gronowski pass complete to Grahm Goering for 14 yds for a TD (Hunter Dustman KICK)Tied at 21
North Dakota State Touchdown, 8 plays
8:20Hunter Dustman kickoff for 64 yds
8:181st & 10 at own 25Cam Miller run for 25 yds to the 50 yard line for a 1ST down South Dakota State Penalty, Personal Foul (Adam Bock) to the SDST 35 for a 1ST down
7:561st & 10 at opp 35Barika Kpeenu run for 3 yds to the SDST 32
7:132nd & 7 at opp 32Cam Miller run for 5 yds to the SDST 27
6:313rd & 2 at opp 27CharMar Brown run for 2 yds to the SDST 25 for a 1ST down
5:461st & 10 at opp 25Cam Miller pass incomplete
5:392nd & 10 at opp 25Barika Kpeenu run for 12 yds to the SDST 13 for a 1ST down
4:481st & 10 at opp 13Cam Miller run for 3 yds to the SDST 10
4:022nd & 7 at opp 10Cam Miller pass complete to Bryce Lance for 10 yds for a TD (Griffin Crosa KICK)North Dakota State 28, South Dakota State 21
4:02Timeout North Dakota State, clock 04:02
South Dakota State Turnover on downs, 10 plays
4:02Eli Ozick kickoff for 65 yds for a touchback
4:011st & 10 at own 25Mark Gronowski run for 4 yds to the SDST 29
3:252nd & 6 at own 29Mark Gronowski pass complete to Amar Johnson for 1 yd to the SDST 30
2:443rd & 5 at own 30Mark Gronowski run for 6 yds to the SDST 36 for a 1ST down
2:061st & 10 at own 36Amar Johnson run for 2 yds to the SDST 38
2:022nd & 8 at own 38Timeout North Dakota State, clock 02:02
2:012nd & 8 at own 38Amar Johnson run for 7 yds to the SDST 45
1:553rd & 1 at own 45Timeout North Dakota State, clock 01:55
1:543rd & 1 at own 45Mark Gronowski run for 2 yds to the SDST 47 for a 1ST down
1:471st & 10 at own 47(01:47) GRONOWSKI, Mark pass short to the right complete for 7 yards to JOHNSON, Amar caught at the SDSU50 and advanced to the NDSU46 (CHIDEME-ALFARO, Anthony), clock 01:43. PENALTY SDSU Face mask on BEERNTSEN, Evan enforced 15 yards from the SDSU47 to the SDSU32 [NHSG]. NO PLAY (replay the down).
1:421st & 25 at own 32Mark Gronowski pass incomplete
1:382nd & 25 at own 32Mark Gronowski pass complete to Greyton Gannon for 8 yds to the SDST 40
1:173rd & 17 at own 40Mark Gronowski pass incomplete
1:174th & 17 at own 40Timeout North Dakota State, clock 01:17
1:164th & 17 at own 40Mark Gronowski sacked by Jaxon Duttenhefer and Loshiaka Roques for a loss of 9 yards to the SDST 31
North Dakota State Result not recorded, 2 plays
1:101st & 10 at opp 31(01:10) Kneel down by MILLER, Cam at SDSU33 (team loss of 2), clock 01:05.
0:222nd & 12 at opp 33(00:22) Kneel down by MILLER, Cam at SDSU35 (team loss of 2), clock 00:18.

Play-by-play from CollegeFootballData.com, as its scorers wrote it. The clock is the time left in the quarter; the spot is from the side of the team with the ball.

North Dakota State leads 16–⁠10 in 26 meetings, counting the one since this game.

Recent meetings
2025North Dakota State 38, South Dakota State 7
2024North Dakota State 28, South Dakota State 21FCS Championship – Semifinals, CFP Semifinal
2024North Dakota State 13, South Dakota State 9
2023South Dakota State 33, North Dakota State 16
2022South Dakota State 45, North Dakota State 21FCS Championship
2022South Dakota State 23, North Dakota State 21

Around this game