Referee Brad Van Vark; umpire Mike Henderson; head linesman Doug Moore; line judge Quentin Givens; side judge Mark Graves; field judge Gabriel DeLeon; back judge Brian Ernest; center judge Brian AlosGame officials: stats.ncaa.org box scores, via SportsDataverse
From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Air Force
Army
261
Total yards
290
107
Passing yards
0
154
Rushing yards
290
7.6
Yards per pass
0.0
5.9
Yards per rush
4.1
11
First downs
21
4–8
Third downs
9–17
0–0
Fourth downs
2–3
3
Turnovers
1
3–15
Penalties
2–15
22:34
Possession
37:26
0
Sacks (by defense)
0
Efficiency
Air Force
Army
43%
Success rate
43%
0.10
EPA per play
−0.01
1.33
Explosiveness
0.90
0.26
Rushing EPA
0.00
−0.18
Passing EPA
−0.60
54%
Passing-down success
24%
−0.21
First-down EPA
0.00
0.08
Second-down EPA
−0.04
0.90
Third-down EPA
0.01
4%
Havoc by its defense
13%
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)
Army 51% to win. Elo’s favorite won.
The line
Air Force −2.5, over/under 37.5.
The last line on file before kickoff: the consensus line when the books publish one, otherwise a single major sportsbook’s.
Before kickoff, the win chances were Air Force 57%, Army 43%. CollegeFootballData.com’s estimate from the point spread.
Every drive
Solid bars scored; an outline in the other team’s color marks points the defense scored. Army drives left to right, Air Force right to left.
Q1 Air ForceInterception, 3 plays, 11 yards
Q1 ArmyFumble, 9 plays, 26 yards
Q1 Air ForceMissed FG, 5 plays, 25 yards
Q1 ArmyField goal, 20 plays, 73 yards
Q2 Air ForcePunt, 7 plays, 35 yards
Q2 ArmyTurnover on downs, 9 plays, 49 yards
Q2 Air ForceMissed FG, 6 plays, 38 yards
Q2 ArmyEnd of half, 1 play, −2 yards
Q3 ArmyPunt, 9 plays, 34 yards
Q3 Air ForcePunt, 3 plays, 6 yards
Q3 ArmyPunt, 3 plays, 6 yards
Q3 Air ForceTouchdown, 10 plays, 87 yards
Q3 ArmyPunt, 5 plays, 15 yards
Q4 Air ForceInterception, 7 plays, 44 yards
Q4 ArmyTouchdown, 16 plays, 80 yards
Q4 Air ForceInterception, 1 play, 0 yards
Q4 ArmyEnd of game, 2 plays, 4 yards
Play by play
1st quarter4 drives, then Tied at 0
Air Force Interception, 3 plays
15:00
1st & 10 at own 35
Landon Salyers kickoff for 60 yds
15:00
1st & 10 at own 25
Brad Roberts run for 7 yds to the AFA 32
15:00
2nd & 3 at own 32
Haaziq Daniels run for 4 yds to the AFA 36 for a 1ST down
15:00
1st & 10 at own 36
Haaziq Daniels pass intercepted return for no gain to the Army 14
Army Fumble, 9 plays
13:33
1st & 10 at own 14
Tyhier Tyler run for 2 yds to the Army 16
13:33
2nd & 8 at own 16
Tyhier Tyler run for 5 yds to the Army 21
13:33
3rd & 3 at own 21
Tyhier Tyler run for 3 yds to the Army 24 for a 1ST down
13:33
1st & 10 at own 24
Sandon McCoy run for 3 yds to the Army 27
13:33
2nd & 7 at own 27
Tyhier Tyler run for 6 yds to the Army 33
13:33
3rd & 1 at own 33
Tyhier Tyler run for 1 yd to the Army 34 for a 1ST down
13:33
1st & 10 at own 34
Jakobi Buchanan run for 2 yds to the Army 36
13:33
2nd & 8 at own 36
Tyrell Robinson run for 4 yds to the Army 40
13:33
3rd & 4 at own 40
Tyhier Tyler run for a loss of 3 yards to the Army 40 Tyhier Tyler fumbled, recovered by AFA Will Trawick
Air Force Missed FG, 5 plays
9:05
1st & 10 at opp 40
Brad Roberts run for 16 yds to the Army 24 for a 1ST down
9:05
1st & 10 at opp 24
Brad Roberts run for 4 yds to the Army 20
9:05
2nd & 6 at opp 20
Brad Roberts run for 3 yds to the Army 17
9:05
3rd & 3 at opp 17
Brad Roberts run for 2 yds to the Army 15
Army Field goal, 20 plays
6:25
1st & 10 at own 20
Tyhier Tyler run for 11 yds to the Army 31 for a 1ST down
6:25
1st & 10 at own 31
Tyhier Tyler run for 3 yds to the Army 34
6:25
2nd & 7 at own 34
Tyhier Tyler run for 3 yds to the Army 37
6:25
3rd & 4 at own 37
Tyhier Tyler run for 6 yds to the Army 43 for a 1ST down
6:25
1st & 10 at own 43
Sandon McCoy run for 2 yds to the Army 45
6:25
2nd & 8 at own 45
Tyhier Tyler run for no gain to the Army 45
6:25
3rd & 8 at own 45
Tyhier Tyler run for 10 yds to the AFA 45 for a 1ST down
6:25
1st & 10 at opp 45
Christian Anderson run for 8 yds to the AFA 37
6:25
2nd & 2 at opp 37
Jakobi Buchanan run for 1 yd to the AFA 36
6:25
3rd & 1 at opp 36
Jakobi Buchanan run for 1 yd to the AFA 35 for a 1ST down
6:25
1st & 10 at opp 35
Sandon McCoy run for 4 yds to the AFA 31
Q2 15:00
2nd & 6 at opp 31
A.J. Howard run for 5 yds to the AFA 26
Q2 15:00
3rd & 1 at opp 26
Sandon McCoy run for 3 yds to the AFA 23 for a 1ST down
Q2 15:00
1st & 10 at opp 23
Tyhier Tyler run for 2 yds to the AFA 21
Q2 15:00
2nd & 8 at opp 21
Tyhier Tyler run for 7 yds to the AFA 14
Q2 15:00
3rd & 1 at opp 14
Jakobi Buchanan run for 4 yds to the AFA 10 for a 1ST down
Q2 15:00
1st & goal at opp 10
Tyhier Tyler run for 1 yd to the AFA 9
Q2 15:00
2nd & goal at opp 9
Tyhier Tyler run for 2 yds to the AFA 7
Q2 15:00
3rd & goal at opp 7
Tyhier Tyler pass incomplete
2nd quarter4 drives, then Army 3, Air Force 0
Air Force Punt, 7 plays
11:23
1st & 0 at own 35
Landon Salyers kickoff for 58 yds
11:23
1st & 10 at own 25
Brad Roberts run for 1 yd to the AFA 26
11:23
2nd & 9 at own 26
Brad Roberts run for 8 yds to the AFA 34
11:23
3rd & 1 at own 34
Haaziq Daniels run for 5 yds to the AFA 39 for a 1ST down
11:23
1st & 10 at own 39
Haaziq Daniels run for 17 yds to the Army 44 for a 1ST down
11:23
1st & 10 at opp 44
Kadin Remsberg run for 3 yds to the Army 41
11:23
2nd & 7 at opp 41
Haaziq Daniels run for 1 yd to the Army 40
11:23
3rd & 6 at opp 40
Haaziq Daniels pass incomplete to Brandon Lewis, broken up by Cameron Jones
11:23
4th & 6 at opp 40
Joseph Carlson punt for 31 yds, fair catch by Tyrell Robinson at the Army 9
Army Turnover on downs, 9 plays
7:18
1st & 10 at own 9
Jakobi Buchanan run for 16 yds to the Army 25 for a 1ST down
7:18
1st & 10 at own 25
Christian Anderson run for 3 yds to the Army 28
7:18
2nd & 7 at own 28
Christian Anderson run for 10 yds to the Army 38 for a 1ST down
7:18
1st & 10 at own 38
Jakobi Buchanan run for 6 yds to the Army 44
7:18
2nd & 4 at own 44
Tyrell Robinson run for 7 yds to the AFA 49 for a 1ST down
7:18
1st & 10 at opp 49
Christian Anderson run for 4 yds to the AFA 45
7:18
2nd & 6 at opp 45
A.J. Howard run for 2 yds to the AFA 43
7:18
3rd & 4 at opp 43
Jakobi Buchanan run for 2 yds to the AFA 41
7:18
4th & 2 at opp 41
Christian Anderson run for a loss of 1 yard to the AFA 42
Air Force Missed FG, 6 plays
2:53
1st & 10 at own 42
Haaziq Daniels pass incomplete to Brandon Lewis
2:53
2nd & 10 at own 42
Brad Roberts run for 30 yds to the Army 28 for a 1ST down
2:53
1st & 10 at opp 28
Brad Roberts run for 2 yds to the Army 26
2:53
2nd & 8 at opp 26
Matthew Murla run for 1 yd to the Army 25
2:53
3rd & 7 at opp 25
Haaziq Daniels run for 5 yds to the Army 20
0:09
4th & 2 at opp 20
Timeout AIR FORCE, clock 00:09
Army End of half, 1 play
0:05
1st & 10 at own 20
Timeout AIR FORCE, clock 00:05
0:05
1st & 10 at own 20
TEAM run for a loss of 2 yards to the Army 18
3rd quarter5 drives, then Air Force 7, Army 3
Army Punt, 9 plays
15:00
2nd & 12 at own 35
Brice Honaker kickoff for 53 yds , return for 14 yds to the Army 26
14:55
1st & 10 at own 26
Christian Anderson run for 6 yds to the Army 32
14:55
2nd & 4 at own 32
Jakobi Buchanan run for 3 yds to the Army 35
14:55
3rd & 1 at own 35
Jakobi Buchanan run for 3 yds to the Army 38 for a 1ST down
14:55
1st & 10 at own 38
Christian Anderson run for 13 yds to the AFA 49 for a 1ST down
14:55
1st & 10 at opp 49
Christian Anderson run for 1 yd to the AFA 48
14:55
2nd & 9 at opp 48
Jakobi Buchanan run for 9 yds to the AFA 39 for a 1ST down
14:55
1st & 10 at opp 39
Sandon McCoy run for 2 yds to the AFA 37
14:55
2nd & 8 at opp 37
Christian Anderson run for a loss of 3 yards to the AFA 40
14:55
3rd & 11 at opp 40
Christian Anderson run for no gain to the AFA 40
14:55
4th & 11 at opp 40
Zach Harding punt for 32 yds
Air Force Punt, 3 plays
9:45
1st & 10 at own 8
Kadin Remsberg run for 6 yds to the AFA 14
9:45
2nd & 4 at own 14
Kadin Remsberg run for a loss of 4 yards to the AFA 10
9:45
3rd & 8 at own 10
Haaziq Daniels run for 4 yds to the AFA 14
9:45
4th & 4 at own 14
Joseph Carlson punt for 49 yds, punt out-of-bounds at the Army 37
Army Punt, 3 plays
7:28
1st & 10 at own 37
Christian Anderson run for 2 yds to the Army 39
7:28
2nd & 8 at own 39
Jakobi Buchanan run for 3 yds to the Army 42
7:28
3rd & 5 at own 42
Jakobi Buchanan run for 1 yd to the Army 43
7:28
4th & 4 at own 43
Zach Harding punt for 44 yds, downed at the AFA 13
Air Force Touchdown, 10 plays
5:16
1st & 10 at own 13
Haaziq Daniels run for a loss of 1 yard to the AFA 13 Haaziq Daniels fumbled, recovered by AFA Haaziq Daniels
5:16
2nd & 10 at own 13
Haaziq Daniels pass complete to Daniel Morris for 9 yds to the AFA 22
5:16
3rd & 1 at own 22
Haaziq Daniels run for 3 yds to the AFA 25 for a 1ST down
5:16
1st & 10 at own 25
Haaziq Daniels pass incomplete to Daniel Morris, broken up by Cedrick Cunningham Jr.
5:16
2nd & 10 at own 25
Haaziq Daniels pass complete to Kyle Patterson for 16 yds to the AFA 41 for a 1ST down
5:16
1st & 10 at own 41
Haaziq Daniels pass complete to Brandon Lewis for 11 yds to the Army 48 for a 1ST down
5:16
1st & 10 at opp 48
Haaziq Daniels pass complete to Kyle Patterson for 39 yds to the Army 9 for a 1ST down
5:16
1st & goal at opp 9
AIR FORCE Penalty, false start (Kyle Patterson) to the Army 14
5:16
1st & goal at opp 14
Kadin Remsberg run for 4 yds to the Army 10
5:16
2nd & goal at opp 10
Haaziq Daniels pass incomplete to Kyle Patterson
0:15
3rd & goal at opp 10
Haaziq Daniels pass complete to Kyle Patterson for 10 yds for a TD ( KICK)
Army Punt, 5 plays
0:15
1st & 0 at own 35
Brice Honaker kickoff for 42 yds , return for 13 yds to the Army 36
0:10
1st & 10 at own 36
Tyrell Robinson run for 2 yds to the Army 38
Q4 15:00
2nd & 8 at own 38
Christian Anderson run for 10 yds to the Army 48 for a 1ST down
Q4 15:00
1st & 10 at own 48
Jakobi Buchanan run for 3 yds to the AFA 49
Q4 15:00
2nd & 7 at opp 49
Christian Anderson run for no gain to the AFA 49
Q4 15:00
3rd & 7 at opp 49
Christian Anderson pass complete to Tyrell Robinson for no gain to the AFA 49
Q4 15:00
4th & 7 at opp 49
Zach Harding punt for 33 yds
4th quarter4 drives, then Army 10, Air Force 7
Air Force Interception, 7 plays
12:32
1st & 10 at own 16
Brad Roberts run for 2 yds to the AFA 18
12:32
2nd & 8 at own 18
Haaziq Daniels run for 20 yds to the AFA 38 for a 1ST down
12:32
1st & 10 at own 38
AIR FORCE Penalty, false start (-5 Yards) to the AFA 33
12:32
1st & 15 at own 33
AIR FORCE Penalty, false start (-5 Yards) to the AFA 28
12:32
1st & 20 at own 28
Haaziq Daniels run for 2 yds to the AFA 30
12:32
2nd & 18 at own 30
Haaziq Daniels pass incomplete to Daniel Morris
12:32
3rd & 18 at own 30
Haaziq Daniels pass complete to Ben Peterson for 22 yds to the Army 48 for a 1ST down
12:32
1st & 10 at opp 48
Brad Roberts run for 8 yds to the Army 40
12:32
2nd & 2 at opp 40
Haaziq Daniels pass intercepted, touchback. return for no gain
Army Touchdown, 16 plays
8:24
1st & 10 at own 20
Jakobi Buchanan run for 3 yds to the Army 23
8:24
2nd & 7 at own 23
Jakobi Buchanan run for 5 yds to the Army 28
8:24
3rd & 2 at own 28
Jakobi Buchanan run for 2 yds to the Army 30 for a 1ST down
8:24
1st & 10 at own 30
Tyrell Robinson run for 16 yds to the Army 46 for a 1ST down
8:24
1st & 10 at own 46
Buchanan, Jakobi rush for 4 yards to the 50 yardline (DONALDSON, Gran), PENALTY ARMY illegal formation 5 yards to the ARMY41, NO PLAY.
8:24
1st & 15 at own 41
Christian Anderson run for 16 yds to the AFA 43 for a 1ST down
8:24
1st & 10 at opp 43
Jakobi Buchanan run for 14 yds to the AFA 29 for a 1ST down
8:24
1st & 10 at opp 29
Christian Anderson run for 1 yd to the AFA 28
8:24
2nd & 9 at opp 28
Christian Anderson run for 2 yds to the AFA 26
8:24
3rd & 7 at opp 26
Tyrell Robinson run for 3 yds to the AFA 23
8:24
4th & 4 at opp 23
Christian Anderson run for 7 yds to the AFA 16 for a 1ST down
8:24
1st & 10 at opp 16
Christian Anderson run for 6 yds to the AFA 10
8:24
2nd & 4 at opp 10
Jakobi Buchanan run for 5 yds to the AFA 5 for a 1ST down
8:24
1st & goal at opp 5
Tyson Riley run for 2 yds to the AFA 3
1:25
2nd & 0 at opp 3
Timeout AIR FORCE, clock 01:25
1:25
2nd & goal at opp 3
Jakobi Buchanan run for 2 yds to the AFA 1
1:25
3rd & goal at opp 1
Jakobi Buchanan run for no gain to the AFA 1
1:13
4th & goal at opp 1
Jakobi Buchanan run for 1 yd for a TD ( KICK)
Air Force Interception, 1 play
1:13
1st & 0 at own 35
Landon Salyers kickoff for 65 yds for a touchback
1:13
1st & 10 at own 25
Haaziq Daniels pass intercepted return for 2 yds to the Army 27 ARMY Penalty, illegal batting (Jon Rhattigan) to the Army 44
Army End of game, 2 plays
1:05
1st & 10 at own 44
TEAM run for 2 yds to the Army 46
1:05
2nd & 8 at own 46
TEAM run for 2 yds to the Army 48
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.