From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Army
Air Force
316
Total yards
401
214
Passing yards
226
102
Rushing yards
175
16.5
Yards per pass
9.8
2.4
Yards per rush
3.5
13
First downs
22
5–14
Third downs
6–16
1–2
Fourth downs
2–5
0
Turnovers
1
4–30
Penalties
4–30
29:03
Possession
30:57
1
Sacks (by defense)
1
Efficiency
Army
Air Force
32%
Success rate
43%
0.11
EPA per play
−0.04
1.63
Explosiveness
1.10
−0.17
Rushing EPA
−0.10
0.90
Passing EPA
0.09
46%
Passing-down success
26%
−0.20
First-down EPA
−0.06
0.63
Second-down EPA
−0.12
0.12
Third-down EPA
0.53
15%
Havoc by its defense
19%
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 64% to win. Army won as Elo’s underdog.
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. Air Force drives left to right, Army right to left.
Q1 Air ForcePunt, 3 plays, 4 yards
Q1 ArmyPunt, 3 plays, 8 yards
Q1 Air ForcePunt, 4 plays, 15 yards
Q1 ArmyMissed FG, 12 plays, 76 yards
Q1 Air ForcePunt, 6 plays, 12 yards
Q2 ArmyPunt, 8 plays, 28 yards
Q2 Air ForceTurnover on downs, 12 plays, 53 yards
Q2 ArmyPunt, 3 plays, 7 yards
Q2 Air ForceEnd of half, 1 play, −1 yard
Q3 ArmyTouchdown, 7 plays, 64 yards
Q3 Air ForceField goal, 9 plays, 49 yards
Q3 ArmyTouchdown, 2 plays, 79 yards
Q3 Air ForceInterception, 6 plays, 50 yards
Q3 ArmyTurnover on downs, 7 plays, 20 yards
Q4 Air ForceTouchdown, 7 plays, 66 yards
Q4 ArmyPunt, 3 plays, 4 yards
Q4 Air ForceTurnover on downs, 5 plays, 31 yards
Q4 ArmyPunt, 3 plays, 0 yards
Q4 Air ForceField goal, 15 plays, 78 yards
Q4 ArmyResult not recorded, 3 plays, 1 yard
Q5 ArmyResult not recorded, 6 plays, 25 yards
Q5 Air ForceDefensive TD, 7 plays (Army scores), 19 yards
Play by play
1st quarter5 drives, then Tied at 0
Air Force Punt, 3 plays
15:00
Cole Talley 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 a loss of 5 yards to the AFA 27
15:00
3rd & 8 at own 27
Haaziq Daniels run for 7 yds to the AFA 34
15:00
4th & 1 at own 34
AIR FORCE Penalty, False Start (-5 Yards) to the AFA 29
12:50
4th & 6 at own 29
Carson Bay punt for 47 yds, downed at the Army 24
Army Punt, 3 plays
12:50
1st & 10 at own 24
Tyhier Tyler run for 2 yds to the Army 26
12:50
2nd & 8 at own 26
Anthony Adkins run for 2 yds to the Army 28
12:50
3rd & 6 at own 28
Tyhier Tyler run for 4 yds to the Army 32
10:55
4th & 2 at own 32
Zach Harding punt for 40 yds
Air Force Punt, 4 plays
10:55
1st & 10 at own 28
Brad Roberts run for 11 yds to the AFA 39 for a 1ST down
10:55
1st & 10 at own 39
Brad Roberts run for 3 yds to the AFA 42
10:55
2nd & 7 at own 42
Brad Roberts run for no gain to the AFA 42
10:55
3rd & 7 at own 42
Brad Roberts run for 1 yd to the AFA 43
8:27
4th & 6 at own 43
Carson Bay punt for 42 yds
Army Missed FG, 12 plays
8:27
1st & 10 at own 15
Tyhier Tyler run for a loss of 1 yard to the Army 14
8:27
2nd & 11 at own 14
Christian Anderson pass complete to Isaiah Alston for 10 yds to the Army 24
6:38
3rd & 6 at own 19
Timeout ARMY, clock 06:38
6:38
3rd & 1 at own 24
ARMY Penalty, False Start (-5 Yards) to the Army 19
6:38
3rd & 6 at own 19
Tyhier Tyler run for 5 yds to the Army 24
6:38
4th & 1 at own 24
Anthony Adkins run for 2 yds to the Army 26 for a 1ST down
6:38
1st & 10 at own 26
Christian Anderson pass complete to Isaiah Alston for 48 yds to the AFA 26 for a 1ST down
6:38
1st & 10 at opp 26
Christian Anderson run for a loss of 1 yard to the AFA 27
6:38
2nd & 11 at opp 27
Tyrell Robinson run for 10 yds to the AFA 17
6:38
3rd & 1 at opp 17
Anthony Adkins run for 2 yds to the AFA 15 for a 1ST down
6:38
1st & 10 at opp 15
Anthony Adkins run for 3 yds to the AFA 12
6:38
2nd & 7 at opp 12
Anthony Adkins run for 3 yds to the AFA 9
6:38
3rd & 4 at opp 9
Tyhier Tyler run for no gain to the AFA 9
0:34
4th & 4 at opp 9
Cole Talley 26 yd FG MISSED
Air Force Punt, 6 plays
0:00
1st & 10 at own 20
Brad Roberts run for 1 yd to the AFA 21
Q2 15:00
2nd & 9 at own 21
Brad Roberts run for 7 yds to the AFA 28
Q2 15:00
3rd & 2 at own 28
Brad Roberts run for 4 yds to the AFA 32 for a 1ST down
Q2 15:00
1st & 10 at own 32
Haaziq Daniels pass incomplete
Q2 15:00
2nd & 10 at own 32
Brandon Lewis run for no gain to the AFA 32
Q2 15:00
3rd & 10 at own 32
Haaziq Daniels pass incomplete
Q2 13:07
4th & 10 at own 32
Carson Bay punt for 49 yds, downed at the Army 19
2nd quarter4 drives, then Tied at 0
Army Punt, 8 plays
13:07
1st & 10 at own 19
Christian Anderson pass incomplete
13:07
2nd & 10 at own 19
Brandon Walters run for 2 yds to the Army 21
13:07
3rd & 8 at own 21
Christian Anderson run for 9 yds to the Army 30 for a 1ST down
13:07
1st & 10 at own 30
Christian Anderson pass complete to Isaiah Alston for 9 yds to the Army 39
13:07
2nd & 1 at own 39
Jakobi Buchanan run for 6 yds to the Army 45 for a 1ST down
13:07
1st & 10 at own 45
Jakobi Buchanan run for 3 yds to the Army 48
13:07
2nd & 7 at own 48
Tyrell Robinson run for 3 yds to the AFA 49
13:07
3rd & 4 at opp 49
Christian Anderson run for a loss of 4 yards to the Army 47
8:23
4th & 8 at own 47
Zach Harding punt for 53 yds for a touchback
Air Force Turnover on downs, 12 plays
8:23
1st & 10 at own 20
Brad Roberts run for 1 yd to the AFA 21
8:23
2nd & 9 at own 21
Haaziq Daniels run for 10 yds to the AFA 31 for a 1ST down
8:23
1st & 10 at own 31
DeAndre Hughes run for 10 yds to the AFA 41 for a 1ST down
8:23
1st & 10 at own 41
Brad Roberts run for 3 yds to the AFA 44
8:23
2nd & 7 at own 44
Haaziq Daniels run for 5 yds to the AFA 49
8:23
3rd & 2 at own 49
Omar Fattah run for 5 yds to the Army 46 for a 1ST down
8:23
1st & 10 at opp 46
Omar Fattah run for 2 yds to the Army 44
3:20
1st & 10 at opp 36
Timeout AIR FORCE, clock 03:20
3:20
2nd & 8 at opp 44
Haaziq Daniels run for 8 yds to the Army 36 for a 1ST down
3:20
1st & 10 at opp 36
Brad Roberts run for 4 yds to the Army 32
3:20
2nd & 6 at opp 32
Omar Fattah run for 5 yds to the Army 27
3:20
3rd & 1 at opp 27
Omar Fattah run for no gain to the Army 27
1:27
4th & 1 at opp 27
Haaziq Daniels run for no gain to the Army 27
Army Punt, 3 plays
1:27
1st & 10 at own 27
Tyrell Robinson run for 2 yds to the Army 29
0:35
3rd & 9 at own 28
Timeout AIR FORCE, clock 00:35
0:35
2nd & 8 at own 29
Christian Anderson run for a loss of 1 yard to the Army 28
0:29
4th & 8 at own 29
Timeout AIR FORCE, clock 00:29
0:29
3rd & 9 at own 28
Tyhier Tyler run for 1 yd to the Army 29
0:17
4th & 8 at own 29
HARDING, Zach punt 40 yards to the AFA31 downed by BARNARD, Cade. PENALTY Before the snap, AFA Illegal Motion on SANFORD, Vince enforced 5 yards from the AWP29 to the AWP34. NO PLAY (replay the down).
0:07
4th & 3 at own 34
Zach Harding punt for 35 yds, downed at the AFA 31
Air Force End of half, 1 play
0:00
1st & 10 at own 31
run for a loss of 1 yard to the AFA 30
3rd quarter5 drives, then Army 14, Air Force 3
Army Touchdown, 7 plays
14:54
Brice Honaker kickoff for 60 yds , Tyrell Robinson return for 31 yds to the Army 36
14:54
1st & 10 at own 36
Anthony Adkins run for 2 yds to the Army 38
14:54
2nd & 8 at own 38
Tyhier Tyler run for 8 yds to the Army 46 for a 1ST down
14:54
1st & 10 at own 46
Tyhier Tyler pass complete to Tyrell Robinson for 39 yds to the AFA 15 for a 1ST down
14:54
1st & 10 at opp 15
Jakobi Buchanan run for 1 yd to the AFA 14
14:54
2nd & 9 at opp 14
A.J. Howard run for 10 yds to the AFA 4 for a 1ST down
14:54
1st & goal at opp 4
Braheam Murphy run for a loss of 5 yards to the AFA 9
11:06
2nd & goal at opp 9
T. Tyler run for 9 yds for a TD, (C. Talley KICK)Army 7, Air Force 0
Air Force Field goal, 9 plays
11:01
Cole Talley kickoff for 54 yds , Brandon Lewis return for 19 yds to the AFA 30
11:01
1st & 10 at own 30
Brad Roberts run for 3 yds to the AFA 33
11:01
2nd & 7 at own 33
Haaziq Daniels run for 6 yds to the AFA 39
11:01
3rd & 1 at own 39
Omar Fattah run for no gain to the AFA 39
11:01
4th & 1 at own 39
Haaziq Daniels run for 3 yds to the AFA 42 for a 1ST down
11:01
1st & 10 at own 42
Haaziq Daniels pass complete to Brandon Lewis for 36 yds to the Army 22 for a 1ST down
11:01
1st & 10 at opp 22
Omar Fattah run for 1 yd to the Army 21
11:01
2nd & 9 at opp 21
Haaziq Daniels run for a loss of 3 yards to the Army 24
11:01
3rd & 12 at opp 24
Haaziq Daniels run for 3 yds to the Army 21
6:07
4th & 9 at opp 21
M. Dapore 39 yd FG GOODArmy 7, Air Force 3
Army Touchdown, 2 plays
6:02
Matthew Dapore kickoff for 62 yds , Tyrell Robinson return for 18 yds to the Army 21
6:02
1st & 10 at own 21
Tyhier Tyler run for no gain to the Army 21
5:07
2nd & 10 at own 21
C. Anderson pass,to T. Robinson for 79 yds for a TD, (C. Talley KICK)Army 14, Air Force 3
Air Force Interception, 6 plays
5:07
Cole Talley kickoff for 37 yds
5:07
1st & 10 at own 28
Brad Roberts run for 4 yds to the AFA 32
5:07
2nd & 6 at own 32
Dane Kinamon run for 3 yds to the AFA 35
5:07
3rd & 3 at own 35
Brad Roberts run for 4 yds to the AFA 39 for a 1ST down
5:07
1st & 10 at own 39
Haaziq Daniels pass complete to Brandon Lewis for 16 yds to the Army 45 for a 1ST down
5:07
1st & 10 at opp 45
Haaziq Daniels pass complete to Brandon Lewis for 23 yds to the Army 22 for a 1ST down
2:38
1st & 10 at opp 22
Dane Kinamon pass intercepted for a 1ST down return for no gain to the Army 46 for a 1ST down
Army Turnover on downs, 7 plays
2:38
1st & 10 at own 46
Tyhier Tyler run for no gain to the Army 46
2:38
2nd & 10 at own 46
Tyhier Tyler run for 4 yds to the 50 yard line
2:38
3rd & 6 at the 50
Anthony Adkins run for 7 yds to the AFA 43 for a 1ST down
2:38
1st & 10 at opp 43
Tyhier Tyler run for 2 yds to the AFA 41
Q4 15:00
2nd & 8 at opp 41
Tyhier Tyler run for 3 yds to the AFA 38
Q4 15:00
3rd & 5 at opp 38
Jakobi Buchanan run for 2 yds to the AFA 36
Q4 13:32
4th & 3 at opp 36
Brandon Walters run for 2 yds to the AFA 34
4th quarter6 drives, then Tied at 14
Air Force Touchdown, 7 plays
13:32
1st & 10 at own 34
Haaziq Daniels pass complete to Brandon Lewis for 12 yds to the AFA 46 for a 1ST down
13:32
1st & 10 at own 46
Haaziq Daniels pass complete to David Cormier for 31 yds to the Army 23 for a 1ST down
13:32
1st & 10 at opp 23
Haaziq Daniels run for 9 yds to the Army 14
13:32
2nd & 1 at opp 14
Brad Roberts run for 3 yds to the Army 11 for a 1ST down
13:32
1st & 10 at opp 11
Omar Fattah run for 5 yds to the Army 6
13:32
2nd & 5 at opp 6
Haaziq Daniels run for 2 yds to the Army 4
10:23
3rd & 3 at opp 4
H. Daniels pass,to D. Kinamon for 4 yds for a TD, (D. Hughes Run For Two-point Conversion)Army 14, Air Force 11
Army Punt, 3 plays
10:23
Matthew Dapore kickoff for 60 yds
10:23
1st & 10 at own 25
Christian Anderson run for a loss of 1 yard to the Army 24
10:23
2nd & 11 at own 24
Christian Anderson pass complete to Brandon Walters for 10 yds to the Army 34
10:23
3rd & 1 at own 34
ARMY Penalty, False Start (-5 Yards) to the Army 29
10:23
3rd & 6 at own 29
Christian Anderson pass incomplete
8:20
4th & 6 at own 29
Zach Harding punt for 57 yds, downed at the AFA 14
Air Force Turnover on downs, 5 plays
8:20
1st & 10 at own 14
Haaziq Daniels pass complete to Dane Kinamon for 22 yds to the AFA 36 for a 1ST down
8:20
1st & 10 at own 36
Haaziq Daniels pass incomplete
8:20
2nd & 10 at own 36
Haaziq Daniels pass incomplete
8:20
3rd & 10 at own 36
AIR FORCE Penalty, False Start (Everett Smalley) to the AFA 31
6:53
4th & 1 at own 45
Timeout AIR FORCE, clock 06:53
6:53
3rd & 15 at own 31
Haaziq Daniels pass complete to David Cormier for 14 yds to the AFA 45
6:48
4th & 1 at own 45
run for no gain to the AFA 45 fumbled, recovered by AFA Haaziq Daniels
Army Punt, 3 plays
6:48
1st & 10 at opp 45
Tyhier Tyler run for no gain to the AFA 45
6:48
2nd & 10 at opp 45
ARMY Penalty, False Start (A.J. Howard) to the 50 yard line
6:48
2nd & 15 at the 50
Christian Anderson pass incomplete
6:48
3rd & 15 at the 50
Christian Anderson run for 5 yds to the AFA 45
5:03
4th & 10 at opp 45
Zach Harding punt for 36 yds, fair catch by Dane Kinamon at the AFA 9
Air Force Field goal, 15 plays
5:03
1st & 10 at own 9
Haaziq Daniels pass complete to Dane Kinamon for 17 yds to the AFA 26 for a 1ST down
5:03
1st & 10 at own 26
Haaziq Daniels pass complete to DeAndre Hughes for 1 yd to the AFA 27
5:03
2nd & 9 at own 27
Haaziq Daniels pass complete to Dane Kinamon for 23 yds to the 50 yard line for a 1ST down
5:03
1st & 10 at the 50
Haaziq Daniels pass complete to David Cormier for 8 yds to the Army 42
5:03
2nd & 2 at opp 42
Omar Fattah run for a loss of 1 yard to the Army 43
5:03
3rd & 3 at opp 43
Omar Fattah run for 4 yds to the Army 39 for a 1ST down
5:03
1st & 10 at opp 39
Haaziq Daniels pass incomplete
5:03
2nd & 10 at opp 39
Haaziq Daniels pass incomplete
5:03
3rd & 10 at opp 39
Haaziq Daniels pass incomplete pass complete to David Cormier for 9 yds to the Army 39
5:03
4th & 10 at opp 39
Haaziq Daniels run for 13 yds to the Army 26 for a 1ST down
5:03
1st & 10 at opp 26
Omar Fattah run for 15 yds to the Army 11 for a 1ST down
5:03
1st & 10 at opp 11
QB Keeper DANIELS, Haaziq rush to the right for no gain to the AWP11 (MORRISON, Malkelm). PENALTY AFA Chop Block on WIMMER, Hawk enforced 15 yards from the AWP11 to the AWP26 [NH]. NO PLAY (replay the down).
5:03
1st & 25 at opp 26
Haaziq Daniels run for 3 yds to the Army 23
5:03
2nd & 22 at opp 23
Brad Roberts run for 4 yds to the Army 19
0:24
4th & 12 at opp 13
Timeout ARMY, clock 00:24
0:24
3rd & 18 at opp 19
Brad Roberts run for 6 yds to the Army 13
0:23
4th & 12 at opp 13
Matthew Dapore 30 yd FG GOODTied at 14
Army Result not recorded, 3 plays
0:21
Brice Honaker kickoff for 25 yds , Marquel Broughton return for a loss of 3 yards to the Army 37
0:21
1st & 10 at own 37
Christian Anderson pass incomplete
0:21
2nd & 10 at own 37
Christian Anderson pass complete to Cole Caterbone for 7 yds to the Army 44
0:00
3rd & 3 at own 44
Christian Anderson sacked by Johnathan Youngblood for 0 yards to the Army 38
Overtime2 drives, then Army 21, Air Force 14
Army Result not recorded, 6 plays
1st & 10 at opp 25
Brad Roberts run for 2 yds to the Army 23 Tyhier Tyler run for 2 yds to the AFA 23
2nd & 8 at opp 23
Haaziq Daniels sacked by Andre Carter II for 0 yards to the Army 30 Christian Anderson pass incomplete
3rd & 8 at opp 23
Haaziq Daniels pass complete to Brandon Lewis for 19 yds to the Army 11 for a 1ST down Haaziq Daniels pass complete to Brandon Lewis for 19 yds to the Army 11 for a 1ST down Christian Anderson pass complete to Isaiah Alston for 12 yds to the AFA 11 for a 1ST down
1st & 10 at opp 11
Omar Fattah run for 2 yds to the Army 9 Christian Anderson run for 2 yds to the AFA 9
Air Force Defensive TD, 7 plays (Army scores)
2nd & 8 at opp 9
Tyrell Robinson run for 3 yds to the AFA 6 Tyrell Robinson run for 3 yds to the AFA 6 Omar Fattah run for 3 yds to the Army 6
3rd & 5 at opp 6
Christian Anderson run for 6 yds for a TD Christian Anderson run for 6 yds for a TD Haaziq Daniels pass incomplete
4th & 5 at opp 25
Haaziq Daniels pass incomplete
3rd & 5 at opp 6
Timeout ARMY, clock 00:00
4th & 5 at opp 6
Timeout AIR FORCE, clock 00:00
Christian Anderson 6 Yd Run (Cole Talley Kick)Army 21, Air Force 14
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.