Referee Reggie Smith; umpire Tab Slaughter; head linesman Mike Moeller; line judge Mark Stewart; side judge Tim Murray; field judge Matt Mills; back judge Lyndon Nixon; center judge Mike ContrerazGame officials: stats.ncaa.org box scores, via SportsDataverse
Scoring by quarter
Team
Q1
Q2
Q3
Q4
Final
Air Force
0
10
14
7
31
Army
0
6
6
0
12
Standouts
No. 28RushingJacobi Owens12 carries, 106 yardsAir Force
From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Air Force
Army
444
Total yards
228
195
Passing yards
84
249
Rushing yards
144
21.7
Yards per pass
5.3
4.8
Yards per rush
3.6
20
First downs
15
7–12
Third downs
4–12
1–1
Fourth downs
0–2
1
Turnovers
2
9–99
Penalties
5–35
31:13
Possession
28:47
1
Sacks (by defense)
0
Efficiency
Air Force
Army
52%
Success rate
30%
0.32
EPA per play
−0.13
1.18
Explosiveness
1.31
0.16
Rushing EPA
0.07
1.45
Passing EPA
−0.58
43%
Passing-down success
26%
0.33
First-down EPA
−0.10
0.22
Second-down EPA
0.18
0.51
Third-down EPA
0.00
23%
Havoc by its defense
8%
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 51% to win. Elo’s favorite won.
The line
Air Force −3, over/under 46.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 58%, Army 42%. 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 ArmyPunt, 7 plays, 32 yards
Q1 Air ForceMissed FG, 15 plays, 57 yards
Q1 ArmyPunt, 6 plays, 13 yards
Q2 Air ForceFumble, 1 play, 2 yards
Q2 ArmyInterception, 3 plays, 0 yards
Q2 Air ForceField goal, 10 plays, 77 yards
Q2 ArmyPunt, 3 plays, 9 yards
Q2 Air ForceTouchdown, 3 plays, 55 yards
Q2 ArmyTouchdown, 6 plays, 65 yards
Q2 Air ForceEnd of half, 2 plays, 6 yards
Q3 Air ForceTouchdown, 7 plays, 70 yards
Q3 ArmyTouchdown, 10 plays, 76 yards
Q3 Air ForceTouchdown, 6 plays, 75 yards
Q3 ArmyPunt, 3 plays, 4 yards
Q3 Air ForcePunt, 5 plays, 19 yards
Q4 ArmyPunt, 3 plays, 5 yards
Q4 Air ForceTouchdown, 6 plays, 55 yards
Q4 ArmyInterception, 8 plays, 65 yards
Q4 Air ForcePunt, 6 plays, 18 yards
Q4 ArmyTurnover on downs, 7 plays, 18 yards
Q4 Air ForceEnd of game, 2 plays, −3 yards
Play by play
1st quarter3 drives, then Tied at 0
Army Punt, 7 plays
15:00
1st & 10 at own 35
Luke Strebel kickoff for 56 yds , Elijah St. Hilaire return for 17 yds to the Army 26
15:00
1st & 10 at own 26
Ahmad Bradshaw run for a loss of 3 yards to the Army 23
15:00
2nd & 13 at own 23
Ahmad Bradshaw pass complete to Jeff Ejekam for 33 yds to the AFA 44 for a 1ST down
15:00
1st & 10 at opp 44
Ahmad Bradshaw run for 9 yds to the AFA 35
15:00
2nd & 1 at opp 35
Darnell Woolfolk run for 4 yds to the AFA 31 for a 1ST down
15:00
1st & 10 at opp 31
Ahmad Bradshaw run for 3 yds to the AFA 28
15:00
2nd & 7 at opp 28
Ahmad Bradshaw run for a loss of 6 yards to the AFA 34
15:00
3rd & 13 at opp 34
Ahmad Bradshaw sacked by Jacob Onyechi for a loss of 8 yards to the AFA 42
15:00
4th & 21 at opp 42
J.D. Mote punt for 28 yds, punt out-of-bounds at the AFA 14
Air Force Missed FG, 15 plays
10:09
1st & 10 at own 14
Arion Worthman run for 1 yd to the AFA 15
10:09
2nd & 9 at own 15
Jacobi Owens run for 11 yds to the AFA 26 for a 1ST down
10:09
1st & 10 at own 26
Arion Worthman run for 15 yds to the AFA 41 for a 1ST down
10:09
1st & 10 at own 41
Tyler Williams run for 5 yds to the Army 46 for a 1ST down ARMY Penalty, unsportsmanlike conduct (Jeremy Timpf) to the Army 39 for a 1ST down
10:09
1st & 10 at opp 39
D.J. Johnson run for 5 yds to the Army 34
10:09
2nd & 5 at opp 34
AIR FORCE Penalty, false start (Ryan Reffitt) to the Army 39
10:09
2nd & 10 at opp 39
Ronald Cleveland run for 9 yds to the Army 30
10:09
3rd & 1 at opp 30
D.J. Johnson run for no gain to the Army 30
10:09
4th & 1 at opp 30
Arion Worthman run for 3 yds to the Army 27 for a 1ST down
5:23
1st & 10 at opp 27
Timeout AIR FORCE, clock 05:23
5:23
1st & 10 at opp 27
Arion Worthman run for 1 yd to the Army 26
5:23
2nd & 9 at opp 26
Arion Worthman run for 1 yd to the Army 25
5:23
3rd & 8 at opp 25
Arion Worthman pass complete to Shayne Davern for 12 yds to the Army 13 for a 1ST down
5:23
1st & 10 at opp 13
Arion Worthman run for 1 yd to the Army 12
5:23
2nd & 9 at opp 12
Ronald Cleveland run for a loss of 3 yards to the Army 15
5:23
3rd & 12 at opp 15
AIR FORCE Penalty, illegal block (-15 Yards) to the Army 30
5:23
3rd & 27 at opp 30
Arion Worthman run for 1 yd to the Army 29
1:05
4th & 26 at opp 29
Luke Strebel 47 yd FG MISSED
Army Punt, 6 plays
1:05
1st & 10 at own 29
Ahmad Bradshaw run for 2 yds to the Army 31
1:05
2nd & 8 at own 31
Tyler Campbell run for 7 yds to the Army 38
Q2 15:00
3rd & 1 at own 38
Darnell Woolfolk run for 2 yds to the Army 40 for a 1ST down
Q2 15:00
1st & 10 at own 40
Andy Davidson run for 2 yds to the Army 42
Q2 15:00
2nd & 8 at own 42
Ahmad Bradshaw pass incomplete to Edgar Poe
Q2 15:00
3rd & 8 at own 42
Ahmad Bradshaw pass incomplete to Edgar Poe, broken up by Jesse Washington
Q2 15:00
4th & 8 at own 42
J.D. Mote punt for 43 yds, punt out-of-bounds at the AFA 15
Q2 13:18
1st & 10 at own 15
D.J. Johnson run for 2 yds to the AFA 17 D.J. Johnson fumbled, forced by Andrew King, recovered by Army Alex Aukerman
2nd quarter6 drives, then Air Force 10, Army 6
Army Interception, 3 plays
13:18
1st & 10 at opp 17
Kell Walker pass incomplete to Tyler Campbell, broken up by Jesse Washington
13:12
2nd & 10 at opp 17
Timeout ARMY, clock 13:12
13:12
2nd & 10 at opp 17
Ahmad Bradshaw run for 5 yds to the AFA 12
13:12
3rd & 5 at opp 12
ARMY Penalty, false start (-5 Yards) to the AFA 17
13:12
3rd & 10 at opp 17
Ahmad Bradshaw pass intercepted, touchback. Weston Steelhammer return for no gain
Air Force Field goal, 10 plays
12:00
1st & 10 at own 20
Arion Worthman pass complete to Jalen Robinette for 45 yds to the Army 35 for a 1ST down
12:00
1st & 10 at opp 35
AIR FORCE Penalty, Offensive holding (-10 Yards) to the Army 45
12:00
1st & 20 at opp 45
Jacobi Owens run for 3 yds to the Army 42
12:00
2nd & 17 at opp 42
Jacobi Owens run for 2 yds to the Army 40
12:00
3rd & 15 at opp 40
Arion Worthman pass complete to Jalen Robinette for 25 yds to the Army 15 for a 1ST down
12:00
1st & 10 at opp 15
Arion Worthman pass incomplete to Jalen Robinette, broken up by Xavier Moss
12:00
2nd & 10 at opp 15
AIR FORCE Penalty, false start (-5 Yards) to the Army 20
12:00
2nd & 15 at opp 20
Timothy McVey run for 5 yds to the Army 15 for a 1ST down ARMY Penalty, UR (Elijah Riley) to the Army 8 for a 1ST down
12:00
1st & goal at opp 8
Tyler Williams run for 3 yds to the Army 5
12:00
2nd & goal at opp 5
Arion Worthman pass incomplete to Timothy McVey
12:00
3rd & goal at opp 5
Arion Worthman run for 2 yds to the Army 3 AIR FORCE Penalty, illegal motion ( Yards) declined
7:39
4th & goal at opp 3
Luke Strebel 20 yd FG GOODAir Force 3, Army 0
Army Punt, 3 plays
7:39
1st & 0 at own 35
Luke Strebel kickoff for 55 yds , Elijah St. Hilaire return for 6 yds to the Army 41 ARMY Penalty, illegal block (8 Yards) to the Army 8
7:29
1st & 10 at own 8
Darnell Woolfolk run for 2 yds to the Army 10
7:29
2nd & 8 at own 10
Darnell Woolfolk run for 3 yds to the Army 13
7:29
3rd & 5 at own 13
Andy Davidson run for 4 yds to the Army 17
7:29
4th & 1 at own 17
J.D. Mote punt for 38 yds, fair catch by Ronald Cleveland at the AFA 45
Air Force Touchdown, 3 plays
5:33
1st & 10 at own 45
Arion Worthman pass complete to Jalen Robinette for 34 yds to the Army 21 for a 1ST down
5:33
1st & 10 at opp 21
Arion Worthman run for 4 yds to the Army 17
4:34
2nd & 6 at opp 17
Shayne Davern run for 17 yds for a TD, (Luke Strebel KICK)Air Force 10, Army 0
Army Touchdown, 6 plays
4:34
1st & 0 at own 35
Luke Strebel kickoff for 55 yds
4:34
1st & 10 at own 35
Ahmad Bradshaw pass complete to Edgar Poe for 12 yds to the Army 47 for a 1ST down
4:34
1st & 10 at own 47
Jordan Asberry run for 2 yds to the Army 49
4:34
2nd & 8 at own 49
Andy Davidson run for 2 yds to the AFA 49
4:34
3rd & 6 at opp 49
Bradshaw, Ahmad pass incomplete to Poe, Edgar, PENALTY AF pass interference (WASHINGTON, Jes) 14 yards to the AF35, 1ST DOWN ARMY, NO PLAY.
4:34
1st & 10 at opp 35
Andy Davidson run for no gain to the AFA 35
4:34
2nd & 10 at opp 35
Andy Davidson run for 3 yds to the AFA 32
1:19
3rd & 7 at opp 32
Kell Walker run for 32 yds for a TD, (Blake Wilson PAT BLOCKED)Air Force 10, Army 6
Air Force End of half, 2 plays
1:19
1st & 0 at own 35
Nick Schrage kickoff for 55 yds
1:19
1st & 10 at own 35
Timeout AIR FORCE, clock 01:19
1:19
1st & 10 at own 35
Jacobi Owens run for 5 yds to the AFA 40
1:19
2nd & 5 at own 40
Arion Worthman run for 1 yd to the AFA 41
3rd quarter5 drives, then Air Force 24, Army 12
Air Force Touchdown, 7 plays
15:00
3rd & 4 at own 35
Blake Wilson kickoff for 50 yds , Timothy McVey return for 15 yds to the AFA 30
14:54
1st & 10 at own 30
Arion Worthman run for 6 yds to the AFA 36
14:54
2nd & 4 at own 36
Jacobi Owens run for 3 yds to the AFA 39
14:54
3rd & 1 at own 39
Arion Worthman run for 3 yds to the AFA 42 for a 1ST down
14:54
1st & 10 at own 42
Arion Worthman run for 4 yds to the AFA 46
14:54
2nd & 6 at own 46
Jacobi Owens run for 1 yd to the AFA 47
14:54
3rd & 5 at own 47
Jacobi Owens run for 7 yds to the Army 46 for a 1ST down
11:31
1st & 10 at opp 46
Arion Worthman pass complete to Jacobi Owens for 46 yds for a TD, (Luke Strebel KICK)Air Force 17, Army 6
Army Touchdown, 10 plays
11:31
1st & 0 at own 35
Luke Strebel kickoff for 46 yds , Joe Walker return for 5 yds to the Army 24
11:19
1st & 10 at own 24
Ahmad Bradshaw run for 5 yds to the Army 29
11:19
2nd & 5 at own 29
Andy Davidson run for 7 yds to the Army 36 for a 1ST down
11:19
1st & 10 at own 36
Andy Davidson run for 3 yds to the Army 39
11:19
2nd & 7 at own 39
Kell Walker run for 3 yds to the Army 42
11:19
3rd & 4 at own 42
Ahmad Bradshaw run for 8 yds to the 50 yard line for a 1ST down
11:19
1st & 10 at the 50
Andy Davidson run for 4 yds to the AFA 46
11:19
2nd & 6 at opp 46
Andy Davidson run for 16 yds to the AFA 30 for a 1ST down
11:19
1st & 10 at opp 30
Kell Walker run for 1 yd to the AFA 29
11:19
2nd & 9 at opp 29
Jordan Asberry run for no gain to the AFA 29 for a 1ST down AIR FORCE Penalty, face mask (15 yards) (Haji Dunn Jr.) to the AFA 14 for a 1ST down
5:55
1st & 10 at opp 14
Ahmad Bradshaw pass complete to Edgar Poe for 14 yds for a TD, (Two-Point Conversion failed )Air Force 17, Army 12
Air Force Touchdown, 6 plays
5:55
1st & 0 at own 35
Nick Schrage kickoff for 65 yds for a touchback
5:55
1st & 10 at own 25
Arion Worthman pass incomplete to Jalen Robinette, broken up by Elijah Riley
5:55
2nd & 10 at own 25
Timothy McVey run for 6 yds to the AFA 31
5:55
3rd & 4 at own 31
Arion Worthman run for 4 yds to the AFA 35 for a 1ST down
5:55
1st & 10 at own 35
Jacobi Owens run for 59 yds to the Army 6 for a 1ST down
5:55
1st & goal at opp 6
Arion Worthman run for 2 yds to the Army 4
3:34
2nd & goal at opp 4
Timothy McVey run for 4 yds for a TD, (Luke Strebel KICK)Air Force 24, Army 12
Army Punt, 3 plays
3:34
1st & 0 at own 35
Luke Strebel kickoff for 51 yds , Elijah St. Hilaire return for 12 yds to the Army 47 ARMY Penalty, Offensive holding (Max Regan) to the Army 16
3:24
1st & 10 at own 16
Ahmad Bradshaw run for 2 yds to the Army 18
3:24
2nd & 8 at own 18
Ahmad Bradshaw run for 2 yds to the Army 20
3:24
3rd & 6 at own 20
Ahmad Bradshaw pass incomplete to Tyler Campbell, broken up by Jesse Washington
3:24
4th & 6 at own 20
J.D. Mote punt for 47 yds, downed at the AFA 33
Air Force Punt, 5 plays
1:40
1st & 10 at own 33
Arion Worthman run for 8 yds to the AFA 41
1:40
2nd & 2 at own 41
Timothy McVey run for 5 yds to the AFA 46 for a 1ST down
1:40
1st & 10 at own 46
Arion Worthman run for 4 yds to the 50 yard line
Q4 15:00
2nd & 6 at the 50
Jacobi Owens run for 4 yds to the Army 46
Q4 15:00
3rd & 2 at opp 46
Arion Worthman run for a loss of 2 yards to the Army 48
Q4 15:00
4th & 4 at opp 48
Steve Brosy punt for 48 yds for a touchback
4th quarter6 drives, then Air Force 31, Army 12
Army Punt, 3 plays
13:38
1st & 10 at own 20
Ahmad Bradshaw run for 4 yds to the Army 24
13:38
2nd & 6 at own 24
Jordan Asberry run for 1 yd to the Army 25
13:38
3rd & 5 at own 25
Kell Walker run for no gain to the Army 25
13:38
4th & 5 at own 25
J.D. Mote punt for 30 yds, fair catch by Ronald Cleveland at the AFA 45
Air Force Touchdown, 6 plays
11:24
1st & 10 at own 45
Arion Worthman pass complete to Ryan Reffitt for 33 yds to the Army 22 for a 1ST down
11:24
1st & 10 at opp 22
Timothy McVey run for 5 yds to the Army 17
11:24
2nd & 5 at opp 17
Timothy McVey run for 4 yds to the Army 13
11:24
3rd & 1 at opp 13
D.J. Johnson run for 2 yds to the Army 11 for a 1ST down
11:24
1st & 10 at opp 11
Jacobi Owens run for 7 yds to the Army 4
8:50
2nd & 3 at opp 4
Arion Worthman run for 4 yds for a TD, (Luke Strebel KICK)Air Force 31, Army 12
Army Interception, 8 plays
8:50
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
8:50
1st & 10 at own 25
Ahmad Bradshaw pass complete to Jeff Ejekam for 5 yds to the Army 30
8:50
2nd & 5 at own 30
Ahmad Bradshaw run for 2 yds to the Army 32 for a 1ST down AIR FORCE Penalty, personal foul (Haji Dunn Jr.) to the Army 47 for a 1ST down
8:50
1st & 10 at own 47
Bradshaw, Ahmad pass incomplete to Poe, Edgar (STEELHAMMER, We), PENALTY AF roughing passer 15 yards to the AF38, 1ST DOWN ARMY, NO PLAY.
8:50
1st & 10 at opp 38
Kell Walker run for 2 yds to the AFA 36
8:50
2nd & 8 at opp 36
Ahmad Bradshaw run for 23 yds to the AFA 13 for a 1ST down
8:50
1st & 10 at opp 13
Andy Davidson run for 4 yds to the AFA 9
8:50
2nd & 6 at opp 9
Tyler Campbell run for a loss of 1 yard to the AFA 10
8:50
3rd & 7 at opp 10
Ahmad Bradshaw pass incomplete to Edgar Poe, broken up by Jesse Washington
8:50
4th & 7 at opp 10
Ahmad Bradshaw pass intercepted, touchback. Roland Ladipo return for no gain
Air Force Punt, 6 plays
5:54
1st & 10 at own 20
Jacobi Owens run for 3 yds to the AFA 23
5:43
2nd & 7 at own 23
Timeout ARMY, clock 05:43
5:43
2nd & 7 at own 23
Timothy McVey run for 6 yds to the AFA 29
5:34
3rd & 1 at own 29
Timeout ARMY, clock 05:34
5:34
3rd & 1 at own 29
Jacobi Owens run for 1 yd to the AFA 30 for a 1ST down
5:29
1st & 10 at own 30
Timeout ARMY, clock 05:29
5:29
1st & 10 at own 30
D.J. Johnson run for 4 yds to the AFA 34
5:29
2nd & 6 at own 34
D.J. Johnson run for 1 yd to the AFA 35
5:29
3rd & 5 at own 35
D.J. Johnson run for 3 yds to the AFA 38
3:18
4th & 2 at own 38
Timeout AIR FORCE, clock 03:18
3:18
4th & 2 at own 38
Steve Brosy punt for 56 yds, downed at the Army 6
Army Turnover on downs, 7 plays
3:04
1st & 10 at own 6
Ahmad Bradshaw run for a loss of 5 yards to the Army 1
3:04
2nd & 15 at own 1
Ahmad Bradshaw pass incomplete to Edgar Poe, broken up by Roland Ladipo
3:04
3rd & 15 at own 1
Ahmad Bradshaw pass complete to Edgar Poe for 20 yds to the Army 21 for a 1ST down
3:04
1st & 10 at own 21
Ahmad Bradshaw pass incomplete
3:04
2nd & 10 at own 21
AIR FORCE Penalty, Defensive offside (Santo Coppola) to the Army 26
3:04
2nd & 5 at own 26
Ahmad Bradshaw pass incomplete
3:04
3rd & 5 at own 26
Ahmad Bradshaw run for a loss of 2 yards to the Army 24
3:04
4th & 7 at own 24
Ahmad Bradshaw pass incomplete to Edgar Poe
Air Force End of game, 2 plays
1:14
1st & 10 at opp 24
TEAM run for a loss of 2 yards to the Army 26
1:14
2nd & 12 at opp 26
TEAM run for a loss of 1 yard to the Army 27
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.