Referee Tom McCreesh; umpire Donald Yates; head linesman George Geiss; line judge Brian Sakowski; side judge Glenn Street; field judge Milton Britton; back judge Doug Smith; center judge Sean GeraghtyGame officials: stats.ncaa.org box scores, via SportsDataverse
Scoring by quarter
Team
Q1
Q2
Q3
Q4
Final
Army
0
0
3
0
3
Air Force
0
10
0
10
20
Standouts
No. 16PassingKarson Roberts7 of 10, 156 yards, 2 TDAir Force
No. 7ReceivingGarrett Brown3 catches, 90 yardsAir Force
From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Army
Air Force
169
Total yards
352
45
Passing yards
156
124
Rushing yards
196
5.6
Yards per pass
15.6
2.8
Yards per rush
4.2
9
First downs
14
3–14
Third downs
7–15
0–1
Fourth downs
0–0
0
Turnovers
0
4–27
Penalties
2–20
29:52
Possession
30:08
Efficiency
Army
Air Force
30%
Success rate
44%
−0.16
EPA per play
0.17
0.82
Explosiveness
1.01
−0.13
Rushing EPA
−0.09
−0.33
Passing EPA
1.49
17%
Passing-down success
46%
−0.30
First-down EPA
−0.03
−0.06
Second-down EPA
0.14
0.05
Third-down EPA
0.58
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 79% to win. Elo’s favorite won.
The line
Air Force −17.5, over/under 50.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 89%, Army 11%. 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, 9 yards
Q1 ArmyPunt, 5 plays, 25 yards
Q1 Air ForcePunt, 3 plays, 9 yards
Q1 ArmyPunt, 3 plays, 8 yards
Q1 Air ForcePunt, 7 plays, 29 yards
Q1 ArmyPunt, 4 plays, 15 yards
Q1 Air ForcePunt, 4 plays, 19 yards
Q2 ArmyPunt, 3 plays, −6 yards
Q2 Air ForceField goal, 6 plays, 37 yards
Q2 ArmyPunt, 5 plays, 16 yards
Q2 Air ForceTouchdown, 8 plays, 83 yards
Q2 ArmyPunt, 3 plays, −1 yard
Q2 Air ForceEnd of half, 1 play, −1 yard
Q3 ArmyPunt, 3 plays, 9 yards
Q3 Air ForcePunt, 5 plays, 19 yards
Q3 ArmyField goal, 9 plays, 35 yards
Q3 Air ForceField goal, 10 plays, 50 yards
Q4 ArmyPunt, 6 plays, 30 yards
Q4 Air ForceTouchdown, 6 plays, 89 yards
Q4 ArmyTurnover on downs, 12 plays, 31 yards
Q4 Air ForceEnd of game, 6 plays, 9 yards
Play by play
1st quarter7 drives, then Tied at 0
Air Force Punt, 3 plays
15:00
1st & 10 at own 35
Daniel Grochowski kickoff for 65 yds for a touchback
15:00
1st & 10 at own 25
Jacobi Owens run for 2 yds to the AFA 27
15:00
2nd & 8 at own 27
Karson Roberts run for 5 yds to the AFA 32
15:00
3rd & 3 at own 32
Bryan Driskell run for 2 yds to the AFA 34
15:00
4th & 1 at own 34
Steve Brosy punt for 33 yds
Army Punt, 5 plays
13:15
1st & 10 at own 33
Aaron Kemper run for 5 yds to the Army 38
13:15
2nd & 5 at own 38
Jordan Asberry run for 11 yds to the Army 49 for a 1ST down
13:15
1st & 10 at own 49
Ahmad Bradshaw run for 6 yds to the AFA 45
13:15
2nd & 4 at opp 45
Ahmad Bradshaw run for 3 yds to the AFA 42
13:15
3rd & 1 at opp 42
ARMY Penalty, false start (-5 Yards) to the AFA 47
13:15
3rd & 6 at opp 47
Ahmad Bradshaw run for 5 yds to the AFA 42
13:15
4th & 1 at opp 42
Alex Tardieu punt for 38 yds, downed at the AFA 4
Air Force Punt, 3 plays
9:31
1st & 10 at own 4
D.J. Johnson run for 3 yds to the AFA 7
9:31
2nd & 7 at own 7
Karson Roberts run for 5 yds to the AFA 12
9:31
3rd & 2 at own 12
Bryan Driskell run for 1 yd to the AFA 13
9:31
4th & 1 at own 13
Steve Brosy punt for 32 yds
Army Punt, 3 plays
7:28
1st & 10 at opp 45
Ahmad Bradshaw run for 4 yds to the AFA 41
7:28
2nd & 6 at opp 41
Jordan Asberry run for 2 yds to the AFA 39
7:28
3rd & 4 at opp 39
Aaron Kemper run for 2 yds to the AFA 37
7:28
4th & 2 at opp 37
Alex Tardieu punt for 37 yds for a touchback
Air Force Punt, 7 plays
5:38
1st & 10 at own 20
Tyler Williams run for 16 yds to the AFA 36 for a 1ST down
5:38
1st & 10 at own 36
Karson Roberts pass complete to Garrett Griffin for 6 yds to the AFA 42
5:38
2nd & 4 at own 42
Bryan Driskell run for a loss of 3 yards to the AFA 39
5:38
3rd & 7 at own 39
Karson Roberts pass complete to Garrett Brown for 7 yds to the AFA 46 for a 1ST down
5:38
1st & 10 at own 46
Bryan Driskell run for 2 yds to the AFA 48
5:38
2nd & 8 at own 48
Karson Roberts run for 1 yd to the AFA 49
5:38
3rd & 7 at own 49
Karson Roberts pass incomplete to Garrett Griffin, broken up by Rhyan England
5:38
4th & 7 at own 49
Steve Brosy punt for 34 yds, downed at the Army 17
Army Punt, 4 plays
2:14
1st & 10 at own 17
Aaron Kemper run for 10 yds to the Army 27 for a 1ST down
2:14
1st & 10 at own 27
Matt Giachinta run for 1 yd to the Army 28
2:14
2nd & 9 at own 28
Aaron Kemper run for 4 yds to the Army 32
2:14
3rd & 5 at own 32
Ahmad Bradshaw pass incomplete
2:14
4th & 5 at own 32
Alex Tardieu punt for 46 yds, punt out-of-bounds at the AFA 22
Air Force Punt, 4 plays
0:15
1st & 10 at own 22
D.J. Johnson run for 10 yds to the AFA 32 for a 1ST down
Q2 15:00
1st & 10 at own 32
Bryan Driskell run for 5 yds to the AFA 37
Q2 15:00
2nd & 5 at own 37
Bryan Driskell run for 4 yds to the AFA 41
Q2 15:00
3rd & 1 at own 41
Karson Roberts pass incomplete to Garrett Griffin
Q2 15:00
4th & 1 at own 41
Steve Brosy punt for 47 yds
2nd quarter6 drives, then Air Force 10, Army 0
Army Punt, 3 plays
13:42
1st & 10 at own 12
Aaron Kemper run for 2 yds to the Army 14
13:42
2nd & 8 at own 14
Ahmad Bradshaw run for 2 yds to the Army 16
13:42
3rd & 6 at own 16
ARMY Penalty, Offensive holding (-7 Yards) to the Army 9
13:42
3rd & 13 at own 9
Ahmad Bradshaw sacked by D.J. Dunn Jr. and Jalen Lacy for a loss of 3 yards to the Army 6
13:42
4th & 16 at own 6
Alex Tardieu punt for 36 yds, punt out-of-bounds at the Army 42
Air Force Field goal, 6 plays
11:01
1st & 10 at opp 42
Jacobi Owens run for 16 yds to the Army 26 for a 1ST down
11:01
1st & 10 at opp 26
Tyler Williams run for 13 yds to the Army 13 for a 1ST down
11:01
1st & 10 at opp 13
Jacobi Owens run for 7 yds to the Army 6
11:01
2nd & 3 at opp 6
Karson Roberts run for 2 yds to the Army 4
11:01
3rd & 1 at opp 4
Jacobi Owens run for a loss of 1 yard to the Army 5
8:30
4th & 2 at opp 5
Luke Strebel 22 yd FG GOODAir Force 3, Army 0
Army Punt, 5 plays
8:30
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
8:30
1st & 10 at own 25
Aaron Kemper run for 8 yds to the Army 33
8:30
2nd & 2 at own 33
Jordan Asberry run for 4 yds to the Army 37 for a 1ST down
8:30
1st & 10 at own 37
Jordan Asberry run for 2 yds to the Army 39
8:30
2nd & 8 at own 39
Aaron Kemper run for 1 yd to the Army 40
8:30
3rd & 7 at own 40
Jordan Asberry run for 1 yd to the Army 41
8:30
4th & 6 at own 41
Alex Tardieu punt for 42 yds, fair catch by Garrett Brown at the AFA 17
Air Force Touchdown, 8 plays
5:49
1st & 10 at own 17
D.J. Johnson run for 2 yds to the AFA 19
5:49
2nd & 8 at own 19
Karson Roberts pass complete to Garrett Brown for 59 yds to the Army 22 for a 1ST down
5:49
1st & 10 at opp 22
D.J. Johnson run for 3 yds to the Army 19
5:49
2nd & 7 at opp 19
Tyler Williams run for 6 yds to the Army 13
5:49
3rd & 1 at opp 13
Benton Washington run for 5 yds to the Army 8 for a 1ST down
5:49
1st & goal at opp 8
Benton Washington run for 3 yds to the Army 5
5:49
2nd & goal at opp 5
Tyler Williams run for 2 yds to the Army 3
2:30
3rd & 0 at opp 3
Timeout AIR FORCE, clock 02:30
2:12
3rd & goal at opp 3
Karson Roberts pass complete to Garrett Griffin for 3 yds for a TD, (Luke Strebel KICK)Air Force 10, Army 0
Army Punt, 3 plays
2:12
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
2:12
1st & 10 at own 25
Ahmad Bradshaw run for 2 yds to the Army 27
2:12
2nd & 8 at own 27
Aaron Kemper run for no gain to the Army 27
2:12
3rd & 8 at own 27
Ahmad Bradshaw run for a loss of 3 yards to the Army 24 Ahmad Bradshaw fumbled, recovered by Army Ahmad Bradshaw
0:46
4th & 11 at own 24
Timeout AIR FORCE, clock 00:46
0:46
4th & 11 at own 24
Alex Tardieu punt for 45 yds, fair catch by Garrett Brown at the AFA 31
Air Force End of half, 1 play
0:40
1st & 10 at own 31
TEAM run for a loss of 1 yard to the AFA 30
3rd quarter4 drives, then Air Force 10, Army 3
Army Punt, 3 plays
15:00
2nd & 11 at own 35
Luke Strebel kickoff for 58 yds
15:00
1st & 10 at own 35
Ahmad Bradshaw run for a loss of 2 yards to the Army 33
15:00
2nd & 12 at own 33
Ahmad Bradshaw run for 5 yds to the Army 38
15:00
3rd & 7 at own 38
AIR FORCE Penalty, Defensive offside (5 Yards) to the Army 43
15:00
3rd & 2 at own 43
Aaron Kemper run for 1 yd to the Army 44
15:00
4th & 1 at own 44
Alex Tardieu punt for 52 yds, downed at the AFA 4
Air Force Punt, 5 plays
12:21
1st & 10 at own 4
Jacobi Owens run for 2 yds to the AFA 6
12:21
2nd & 8 at own 6
Karson Roberts run for 9 yds to the AFA 15 for a 1ST down
12:21
1st & 10 at own 15
Jacobi Owens run for 4 yds to the AFA 19
12:21
2nd & 6 at own 19
Jacobi Owens run for 4 yds to the AFA 23
12:21
3rd & 2 at own 23
Karson Roberts run for no gain to the AFA 23
12:21
4th & 2 at own 23
Steve Brosy punt for 45 yds , Edgar Poe returns for 4 yds to the Army 36
Army Field goal, 9 plays
9:20
1st & 10 at own 36
Aaron Kemper run for 5 yds to the Army 41
9:20
2nd & 5 at own 41
Ahmad Bradshaw run for 4 yds to the Army 45
9:20
3rd & 1 at own 45
Ahmad Bradshaw run for 3 yds to the Army 48 for a 1ST down
9:20
1st & 10 at own 48
Aaron Kemper run for 2 yds to the 50 yard line
9:20
2nd & 8 at the 50
Ahmad Bradshaw run for 16 yds to the AFA 34 for a 1ST down
9:20
1st & 10 at opp 34
Aaron Kemper run for a loss of 1 yard to the AFA 35
9:20
2nd & 11 at opp 35
Nicholas Black run for 6 yds to the AFA 29
9:20
3rd & 5 at opp 29
Ahmad Bradshaw run for no gain to the AFA 29
4:18
4th & 5 at opp 29
Daniel Grochowski 47 yd FG GOODAir Force 10, Army 3
Air Force Field goal, 10 plays
4:18
1st & 0 at own 35
Daniel Grochowski kickoff for 65 yds for a touchback
4:18
1st & 10 at own 25
Karson Roberts run for no gain to the AFA 25
4:18
2nd & 10 at own 25
D.J. Johnson run for 8 yds to the AFA 33
4:18
3rd & 2 at own 33
Tyler Williams run for 2 yds to the AFA 35 for a 1ST down
4:18
1st & 10 at own 35
Karson Roberts pass incomplete to Jalen Robinette, broken up by Brandon Jackson
4:18
2nd & 10 at own 35
D.J. Johnson run for 3 yds to the AFA 38
4:18
3rd & 7 at own 38
Karson Roberts pass complete to Jalen Robinette for 34 yds to the Army 28 for a 1ST down
4:18
1st & 10 at opp 28
Jacobi Owens run for 3 yds to the Army 25
4:18
2nd & 7 at opp 25
Karson Roberts run for 2 yds to the Army 23
4:18
3rd & 5 at opp 23
Bryan Driskell run for a loss of 2 yards to the Army 25
Q4 14:55
4th & 7 at opp 25
Luke Strebel 42 yd FG GOODAir Force 13, Army 3
4th quarter4 drives, then Air Force 20, Army 3
Army Punt, 6 plays
14:55
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
14:55
1st & 10 at own 25
Christian Drake run for 3 yds to the Army 28
14:55
2nd & 7 at own 28
Ahmad Bradshaw run for a loss of 1 yard to the Army 27
13:34
3rd & 8 at own 27
Timeout ARMY, clock 13:34
13:34
3rd & 8 at own 27
Ahmad Bradshaw pass complete to Edgar Poe for 33 yds to the AFA 40 for a 1ST down
13:34
1st & 10 at opp 40
ARMY Penalty, Offensive holding (-10 Yards) to the 50 yard line
13:34
1st & 20 at the 50
Tyler Campbell run for 1 yd to the AFA 49
13:34
2nd & 19 at opp 49
Ahmad Bradshaw pass incomplete to Edgar Poe
13:34
3rd & 19 at opp 49
Aaron Kemper run for 4 yds to the AFA 45
13:34
4th & 15 at opp 45
Alex Tardieu punt for 34 yds, fair catch by Garrett Brown at the AFA 11
Air Force Touchdown, 6 plays
11:24
1st & 10 at own 11
D.J. Johnson run for 7 yds to the AFA 18
11:24
2nd & 3 at own 18
Bryan Driskell run for 28 yds to the AFA 46 for a 1ST down
11:24
1st & 10 at own 46
Karson Roberts pass complete to Garrett Brown for 24 yds to the Army 30 for a 1ST down
11:24
1st & 10 at opp 30
D.J. Johnson run for 4 yds to the Army 26
11:24
2nd & 6 at opp 26
D.J. Johnson run for 3 yds to the Army 23
8:17
3rd & 3 at opp 23
Timeout AIR FORCE, clock 08:17
8:11
3rd & 3 at opp 23
Karson Roberts pass complete to Garrett Griffin for 23 yds for a TD, (Luke Strebel KICK)Air Force 20, Army 3
Army Turnover on downs, 12 plays
8:11
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
8:11
1st & 10 at own 25
Ahmad Bradshaw run for 6 yds to the Army 31
8:11
2nd & 4 at own 31
Ahmad Bradshaw pass incomplete to Matt Giachinta
8:11
3rd & 4 at own 31
Matt Giachinta run for 4 yds to the Army 35 for a 1ST down
8:11
1st & 10 at own 35
Ahmad Bradshaw pass incomplete to Nicholas Black
8:11
2nd & 10 at own 35
Aaron Kemper run for 4 yds to the Army 39
8:11
3rd & 6 at own 39
Ahmad Bradshaw run for no gain to the Army 39
8:11
4th & 6 at own 39
AIR FORCE Penalty, personal foul (Santo Coppola) to the AFA 46 for a 1ST down
8:11
1st & 10 at opp 46
Ahmad Bradshaw run for 2 yds to the AFA 44
8:11
2nd & 8 at opp 44
Ahmad Bradshaw pass complete to Nicholas Black for 12 yds to the AFA 32 for a 1ST down
8:11
1st & 10 at opp 32
Ahmad Bradshaw run for no gain to the AFA 32
8:11
2nd & 10 at opp 32
ARMY Penalty, false start (Nicholas Black) to the AFA 37
8:11
2nd & 15 at opp 37
Ahmad Bradshaw pass incomplete to Nicholas Black, broken up by Alex Hansen
8:11
3rd & 15 at opp 37
Ahmad Bradshaw sacked by D.J. Dunn Jr. for a loss of 7 yards to the AFA 44
4:04
4th & 22 at opp 44
Timeout ARMY, clock 04:04
4:04
4th & 22 at opp 44
Ahmad Bradshaw pass incomplete to Edgar Poe, broken up by Roland Ladipo
Air Force End of game, 6 plays
3:58
1st & 10 at own 45
D.J. Johnson run for 3 yds to the AFA 48
3:58
2nd & 7 at own 48
Bryan Driskell run for 6 yds to the Army 46
3:58
3rd & 1 at opp 46
D.J. Johnson run for 1 yd to the Army 45 for a 1ST down
3:58
1st & 10 at opp 45
Bryan Driskell run for 2 yds to the Army 43
3:58
2nd & 8 at opp 43
TEAM run for a loss of 2 yards to the Army 45
3:58
3rd & 10 at opp 45
TEAM run for a loss of 1 yard to the Army 46
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.