From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Air Force
Army
324
Total yards
145
98
Passing yards
67
226
Rushing yards
78
7.5
Yards per pass
4.8
4.3
Yards per rush
2.2
18
First downs
8
6–14
Third downs
4–14
0–0
Fourth downs
1–3
1
Turnovers
1
5–40
Penalties
4–20
34:49
Possession
25:11
2
Sacks (by defense)
1
Efficiency
Air Force
Army
49%
Success rate
27%
0.17
EPA per play
−0.15
0.97
Explosiveness
1.05
0.20
Rushing EPA
−0.01
0.42
Passing EPA
−0.26
40%
Passing-down success
7%
0.06
First-down EPA
−0.17
0.15
Second-down EPA
−0.04
0.43
Third-down EPA
0.13
22%
Havoc by its defense
12%
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)
Air Force 63% to win. Elo’s favorite won.
The line
Air Force −7, over/under 40.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 68%, Army 32%. 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 ForcePunt, 6 plays, 17 yards
Q1 ArmyPunt, 9 plays, 25 yards
Q1 Air ForcePunt, 3 plays, 0 yards
Q1 ArmyTurnover on downs, 4 plays, 9 yards
Q1 Air ForceField goal, 6 plays, 19 yards
Q1 ArmyPunt, 3 plays, 0 yards
Q2 Air ForceMissed FG, 8 plays, 33 yards
Q2 ArmyTouchdown, 6 plays, 68 yards
Q2 Air ForceInterception, 6 plays, 33 yards
Q2 ArmyPunt, 4 plays, 13 yards
Q2 Air ForceEnd of half, 3 plays, 13 yards
Q3 ArmyPunt, 3 plays, −4 yards
Q3 Air ForceTouchdown, 9 plays, 65 yards
Q3 ArmyPunt, 6 plays, −2 yards
Q3 Air ForceField goal, 16 plays, 58 yards
Q4 ArmyPunt, 3 plays, 1 yard
Q4 Air ForcePunt, 5 plays, 32 yards
Q4 ArmyPunt, 3 plays, −5 yards
Q4 Air ForcePunt, 6 plays, 15 yards
Q4 ArmyInterception, 8 plays, 20 yards
Q4 Air ForceEnd of game, 1 play, −1 yard
Play by play
1st quarter6 drives, then Air Force 3, Army 0
Air Force Punt, 6 plays
15:00
1st & 10 at own 35
Cole Talley kickoff for 65 yds for a touchback
15:00
1st & 10 at own 25
Brad Roberts run for no gain to the AFA 25
15:00
2nd & 10 at own 25
Zac Larrier run for 2 yds to the AFA 27
15:00
3rd & 8 at own 27
Haaziq Daniels pass complete to David Cormier for 16 yds to the AFA 43 for a 1ST down
15:00
1st & 10 at own 43
Brad Roberts run for 5 yds to the AFA 48
15:00
2nd & 5 at own 48
Haaziq Daniels pass incomplete to David Cormier
15:00
3rd & 5 at own 48
Haaziq Daniels pass complete to Zac Larrier for 6 yds to the AFA 42
11:44
4th & 11 at own 42
Carson Bay punt for 45 yds, punt out-of-bounds at the Army 13
Army Punt, 9 plays
11:44
1st & 10 at own 13
Tyhier Tyler run for 5 yds to the Army 18
11:44
2nd & 5 at own 18
Jemel Jones run for 3 yds to the Army 21
11:44
3rd & 2 at own 21
Jakobi Buchanan run for 3 yds to the Army 24 for a 1ST down
11:44
1st & 10 at own 24
Jemel Jones run for 1 yd to the Army 25
11:44
2nd & 9 at own 25
Tyson Riley run for 6 yds to the Army 31
11:44
3rd & 3 at own 31
Jemel Jones run for 3 yds to the Army 34 for a 1ST down
11:44
1st & 10 at own 34
Jemel Jones pass incomplete
11:44
2nd & 10 at own 34
Jemel Jones run for 4 yds to the Army 38
11:44
3rd & 6 at own 38
Jemel Jones pass incomplete to Maurice Bellan
7:08
4th & 6 at own 38
Billy Boehlke punt for 35 yds, fair catch by Amari Terry at the AFA 27
Air Force Punt, 3 plays
7:08
1st & 10 at own 27
Brad Roberts run for no gain to the AFA 27
6:27
2nd & 10 at own 27
Timeout AIR FORCE, clock 06:27
6:27
2nd & 10 at own 27
John Lee Eldridge III run for no gain to the AFA 27
6:27
3rd & 10 at own 27
Haaziq Daniels pass incomplete to John Lee Eldridge III
5:38
4th & 10 at own 27
Carson Bay punt for 45 yds
5:38
4th & 10 at own 27
Carson Bay punt blocked by Jackson Powell blocked by Jackson Powell
Army Turnover on downs, 4 plays
5:38
1st & 10 at own 28
Jemel Jones run for 3 yds to the Army 31
5:38
2nd & 7 at own 31
Jemel Jones run for 3 yds to the Army 34
5:38
3rd & 4 at own 34
Tyson Riley run for 3 yds to the Army 37
3:25
4th & 1 at own 37
Jakobi Buchanan run for no gain to the Army 37
Air Force Field goal, 6 plays
3:25
1st & 10 at opp 37
Brad Roberts run for 3 yds to the Army 34
2:39
2nd & 7 at opp 34
Timeout AIR FORCE, clock 02:39
2:39
2nd & 7 at opp 34
Brad Roberts run for 15 yds to the Army 19 for a 1ST down
2:39
1st & 10 at opp 19
Brad Roberts run for 3 yds to the Army 16
2:39
2nd & 7 at opp 16
Brad Roberts run for no gain to the Army 16
2:39
3rd & 7 at opp 16
DeAndre Hughes run for 2 yds to the Army 18
0:19
4th & 9 at opp 18
Matthew Dapore 35 yd FG GOODAir Force 3, Army 0
Army Punt, 3 plays
0:19
1st & 10 at own 35
Matthew Dapore kickoff for 60 yds
0:19
1st & 10 at own 25
PENALTY AWP False Start (Filipowicz,Jackson) 5 yards from AWP25 to AWP20. NO PLAY.
0:19
1st & 15 at own 20
PENALTY AWP False Start (Lingenfelter,Joshua) 5 yards from AWP20 to AWP15. NO PLAY.
0:00
1st & 20 at own 15
Jemel Jones run for 9 yds to the Army 24
Q2 15:00
2nd & 11 at own 24
Jemel Jones run for 2 yds to the Army 26
Q2 15:00
3rd & 9 at own 26
Jemel Jones sacked for a loss of 1 yard to the Army 25
Q2 13:37
4th & 10 at own 25
Billy Boehlke punt for 40 yds, fair catch by Eian Castonguay at the AFA 35
2nd quarter5 drives, then Army 7, Air Force 3
Air Force Missed FG, 8 plays
13:37
1st & 10 at own 35
Haaziq Daniels run for 8 yds to the AFA 43
13:37
2nd & 2 at own 43
Brad Roberts run for 10 yds to the Army 47 for a 1ST down
13:37
1st & 10 at opp 47
Brad Roberts run for 7 yds to the Army 40
13:37
2nd & 3 at opp 40
Haaziq Daniels run for 5 yds to the Army 35 for a 1ST down
13:37
1st & 10 at opp 35
Omar Fattah run for 3 yds to the Army 32
13:37
2nd & 7 at opp 32
Zac Larrier run for no gain to the Army 32
13:37
3rd & 7 at opp 32
Haaziq Daniels pass incomplete to Zac Larrier
9:55
4th & 7 at opp 32
Matthew Dapore 49 yd FG MISSED
Army Touchdown, 6 plays
9:55
1st & 10 at own 32
Tyson Riley run for 3 yds to the Army 35
9:55
2nd & 7 at own 35
Jemel Jones pass complete to Isaiah Alston for 24 yds to the AFA 41 for a 1ST down
9:55
1st & 10 at opp 41
Jemel Jones pass complete to Ay’Jaun Marshall for 31 yds to the AFA 10 for a 1ST down
9:55
1st & goal at opp 10
Jemel Jones run for 3 yds to the AFA 7
9:55
2nd & goal at opp 7
Jemel Jones run for 4 yds to the AFA 3
6:24
3rd & goal at opp 3
Jemel Jones run for 3 yds for a TD, (Quinn Maretzki KICK)Army 7, Air Force 3
Air Force Interception, 6 plays
6:24
1st & 10 at own 35
Cole Talley kickoff for 65 yds for a touchback
6:24
1st & 10 at own 25
Brad Roberts run for 2 yds to the AFA 27
6:24
2nd & 8 at own 27
Haaziq Daniels run for 12 yds to the AFA 39 for a 1ST down
6:24
1st & 10 at own 39
Haaziq Daniels pass complete to David Cormier for 16 yds to the Army 45 for a 1ST down
6:24
1st & 10 at opp 45
Haaziq Daniels pass incomplete to Brandon Engel
6:24
2nd & 10 at opp 45
Brad Roberts run for 3 yds to the Army 42
3:35
3rd & 7 at opp 42
Haaziq Daniels pass intercepted
Army Punt, 4 plays
3:35
1st & 10 at own 42
Jemel Jones pass complete to Isaiah Alston for 10 yds to the AFA 48 for a 1ST down
3:35
1st & 10 at opp 48
Jemel Jones run for 3 yds to the AFA 45
3:35
2nd & 7 at opp 45
Jemel Jones run for no gain to the AFA 45
3:35
3rd & 7 at opp 45
Jemel Jones pass incomplete to Cole Caterbone
1:18
4th & 7 at opp 45
Billy Boehlke punt for 42 yds
Air Force End of half, 3 plays
1:18
1st & 10 at own 3
Brad Roberts run for 4 yds to the AFA 7
1:11
2nd & 6 at own 7
Timeout ARMY, clock 01:11
1:11
2nd & 6 at own 7
Haaziq Daniels run for 8 yds to the AFA 15 for a 1ST down
0:00
1st & 10 at own 15
Brad Roberts run for 1 yd to the AFA 16
3rd quarter4 drives, then Air Force 10, Army 7
Army Punt, 3 plays
14:55
1st & 10 at own 35
Matthew Dapore kickoff for 58 yds , Maurice Bellan return for 17 yds to the Army 24
14:55
1st & 10 at own 24
Jemel Jones run for 5 yds to the Army 19
14:55
2nd & 15 at own 19
Jemel Jones run for 1 yd to the Army 20
14:55
3rd & 14 at own 20
Jemel Jones pass incomplete to Isaiah Alston
13:20
4th & 14 at own 20
Billy Boehlke punt for 49 yds, punt out-of-bounds at the AFA 35 , Amari Terry returns for 4 yds to the AFA 35
Air Force Touchdown, 9 plays
13:20
1st & 10 at own 35
Brad Roberts run for 7 yds to the AFA 42
13:20
2nd & 3 at own 42
Brad Roberts run for 4 yds to the AFA 46 for a 1ST down
12:19
1st & 10 at own 46
Timeout AIR FORCE, clock 12:19
12:19
1st & 10 at own 46
Brad Roberts run for 5 yds to the Army 49
12:19
2nd & 5 at opp 49
Haaziq Daniels run for 3 yds to the Army 46
12:19
3rd & 2 at opp 46
Haaziq Daniels pass complete to David Cormier for 27 yds to the Army 19 for a 1ST down AIR FORCE Penalty, Personal Foul (Everett Smalley) to the Army 34 for a 1ST down
12:19
1st & 10 at opp 34
Brad Roberts run for 3 yds to the Army 31
12:19
2nd & 7 at opp 31
Haaziq Daniels pass incomplete to Brandon Engel
12:19
3rd & 7 at opp 31
Haaziq Daniels run for 14 yds to the Army 17 for a 1ST down
9:32
1st & 10 at opp 17
Haaziq Daniels run for 17 yds for a TD, (Matthew Dapore KICK)Air Force 10, Army 7
Army Punt, 6 plays
9:32
1st & 10 at own 35
Matthew Dapore kickoff for 58 yds
9:32
1st & 10 at own 25
Tyhier Tyler run for 8 yds to the Army 33
9:32
2nd & 2 at own 33
Tyhier Tyler run for 1 yd to the Army 34
9:32
3rd & 1 at own 34
Jakobi Buchanan run for 1 yd to the Army 35 for a 1ST down
9:32
1st & 10 at own 35
Jemel Jones sacked by Trey Taylor for a loss of 15 yards to the Army 20
9:32
2nd & 25 at own 20
Tyson Riley run for 3 yds to the Army 23
9:32
3rd & 22 at own 23
Jemel Jones pass incomplete to Isaiah Alston
5:54
4th & 22 at own 23
Billy Boehlke punt for 44 yds, fair catch by Amari Terry at the AFA 33
Air Force Field goal, 16 plays
5:54
1st & 10 at own 33
Brad Roberts run for 5 yds to the AFA 38
5:54
2nd & 5 at own 38
Brad Roberts run for 3 yds to the AFA 41
5:54
3rd & 2 at own 41
Haaziq Daniels run for 5 yds to the AFA 46 for a 1ST down ARMY Penalty, Illegal Substitution ( Yards) declined for a 1ST down
5:54
1st & 10 at own 46
Haaziq Daniels pass incomplete to David Cormier
5:54
2nd & 10 at own 46
Haaziq Daniels run for 11 yds to the Army 43 for a 1ST down
5:54
1st & 10 at opp 43
PENALTY AFA False Start (Rillos,Caleb) 5 yards from AWP43 to AWP48. NO PLAY.
5:54
1st & 15 at opp 48
Brad Roberts run for 8 yds to the Army 40
5:54
2nd & 7 at opp 40
Haaziq Daniels pass complete to Amari Terry for 15 yds to the Army 25 for a 1ST down
5:54
1st & 10 at opp 25
Brad Roberts run for 6 yds to the Army 19
5:54
2nd & 4 at opp 19
Haaziq Daniels run for 6 yds to the Army 13 for a 1ST down
5:54
1st & 10 at opp 13
Brad Roberts run for 4 yds to the Army 9
0:00
2nd & 6 at opp 9
Brad Roberts run for 2 yds to the Army 7
Q4 15:00
3rd & 4 at opp 7
Haaziq Daniels run for 6 yds to the Army 1 for a 1ST down
Q4 15:00
1st & goal at opp 1
PENALTY AFA False Start (Karas,Adam) 5 yards from AWP01 to AWP06. NO PLAY.
Q4 15:00
1st & goal at opp 6
PENALTY AFA False Start (Karas,Adam) 5 yards from AWP06 to AWP11. NO PLAY.
Q4 15:00
1st & goal at opp 11
Haaziq Daniels run for 3 yds to the Army 14
Q4 15:00
2nd & goal at opp 14
Haaziq Daniels run for 2 yds to the Army 16
Q4 15:00
3rd & goal at opp 16
Brad Roberts run for 7 yds to the Army 9
Q4 12:06
4th & goal at opp 9
Matthew Dapore 26 yd FG GOODAir Force 13, Army 7
4th quarter6 drives, then Air Force 13, Army 7
Army Punt, 3 plays
12:06
1st & 10 at own 35
Matthew Dapore kickoff for 58 yds
12:06
1st & 10 at own 25
Ay’Jaun Marshall run for 2 yds to the Army 23
12:06
2nd & 12 at own 23
Jakobi Buchanan run for 5 yds to the Army 28
12:06
3rd & 7 at own 28
Jemel Jones run for 2 yds to the Army 26
9:59
4th & 9 at own 26
Billy Boehlke punt for 43 yds, fair catch by Amari Terry at the AFA 31
Air Force Punt, 5 plays
9:59
1st & 10 at own 31
Daniels,Haaziq pass incomplete short left to Cormier,David PENALTY AFA Holding (Karas,Adam) 10 yards from AFA31 to AFA21. NO PLAY.
9:59
1st & 20 at own 21
Brad Roberts run for 6 yds to the AFA 27
9:59
2nd & 14 at own 27
Haaziq Daniels pass complete to David Cormier for 30 yds to the Army 43 for a 1ST down
9:59
1st & 10 at opp 43
Brad Roberts run for 5 yds to the Army 38
9:59
2nd & 5 at opp 38
Brad Roberts run for 2 yds to the Army 36
9:59
3rd & 3 at opp 36
Haaziq Daniels sacked by Leo Lowin for a loss of 1 yard to the Army 37
6:13
4th & 4 at opp 37
Carson Bay punt for 18 yds, punt out-of-bounds at the Army 19
Army Punt, 3 plays
6:13
1st & 10 at own 19
Jemel Jones run for 3 yds to the Army 22
6:13
2nd & 7 at own 22
Tyson Riley run for 2 yds to the Army 24
6:13
3rd & 5 at own 24
PENALTY AWP False Start (Buckingham,Shayne) 5 yards from AWP24 to AWP19. NO PLAY.
6:13
3rd & 10 at own 19
PENALTY AWP False Start (Lingenfelter,Joshua) 5 yards from AWP19 to AWP14. NO PLAY.
6:13
3rd & 15 at own 14
Jemel Jones pass incomplete to Ay’Jaun Marshall
4:05
4th & 15 at own 14
Billy Boehlke punt for 47 yds
Air Force Punt, 6 plays
4:05
1st & 10 at own 39
Brad Roberts run for 5 yds to the AFA 44
4:05
2nd & 5 at own 44
Brad Roberts run for 4 yds to the AFA 48
4:05
3rd & 1 at own 48
Brad Roberts run for 2 yds to the 50 yard line for a 1ST down
4:05
1st & 10 at the 50
Brad Roberts run for 5 yds to the Army 45
1:56
2nd & 5 at opp 45
Timeout ARMY, clock 01:56
1:56
2nd & 5 at opp 45
Brad Roberts run for 2 yds to the Army 43
1:48
3rd & 3 at opp 43
Timeout ARMY, clock 01:48
1:48
3rd & 3 at opp 43
Brad Roberts run for 3 yds to the Army 46
1:46
4th & 6 at opp 46
Timeout ARMY, clock 01:46
1:38
4th & 6 at opp 46
Carson Bay punt for 31 yds , Cameron Jones returns for 9 yds to the Army 24
Army Interception, 8 plays
1:38
1st & 10 at own 24
Jemel Jones run for 7 yds to the Army 31
1:38
2nd & 3 at own 31
Jemel Jones pass incomplete to Braheam Murphy
1:38
3rd & 3 at own 31
Jemel Jones pass complete to Tyson Riley for 2 yds to the Army 33
1:38
4th & 1 at own 33
Tyson Riley run for 3 yds to the Army 36 for a 1ST down
0:52
1st & 10 at own 36
Timeout AIR FORCE, clock 00:52
0:52
1st & 10 at own 36
Jemel Jones pass incomplete to Veshe Daniyan
0:52
2nd & 10 at own 36
Jemel Jones run for 8 yds to the Army 44
0:52
3rd & 2 at own 44
Jemel Jones pass incomplete to Braheam Murphy
0:19
4th & 2 at own 44
Jemel Jones pass intercepted
Air Force End of game, 1 play
0:00
1st & 10 at own 40
run for 1 yd to the AFA 39
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.