From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Air Force
Army
209
Total yards
255
92
Passing yards
48
117
Rushing yards
207
4.6
Yards per pass
5.3
2.9
Yards per rush
4.8
15
First downs
15
5–15
Third downs
4–12
3–3
Fourth downs
2–3
3
Turnovers
0
4–50
Penalties
6–65
31:51
Possession
28:09
1
Sacks (by defense)
6
Efficiency
Air Force
Army
35%
Success rate
42%
−0.09
EPA per play
0.11
1.29
Explosiveness
1.01
0.20
Rushing EPA
0.21
−0.37
Passing EPA
−0.27
24%
Passing-down success
13%
−0.47
First-down EPA
−0.06
−0.24
Second-down EPA
−0.02
0.30
Third-down EPA
0.54
12%
Havoc by its defense
25%
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 84% to win. Elo’s favorite won.
The line
Army −18, over/under 38.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 Army 89%, Air Force 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. Army drives left to right, Air Force right to left.
Q1 Air ForcePunt, 3 plays, 9 yards
Q1 ArmyField goal, 11 plays, 57 yards
Q1 Air ForcePunt, 3 plays, −12 yards
Q1 ArmyPunt, 3 plays, 6 yards
Q1 Air ForcePunt, 3 plays, 7 yards
Q1 ArmyField goal, 8 plays, 29 yards
Q2 Air ForcePunt, 8 plays, 30 yards
Q2 ArmyPunt, 3 plays, 1 yard
Q2 Air ForceField goal, 11 plays, 49 yards
Q2 ArmyEnd of half, 6 plays, 15 yards
Q3 ArmyTouchdown, 9 plays, 65 yards
Q3 Air ForcePunt, 5 plays, 6 yards
Q3 ArmyPunt, 3 plays, 2 yards
Q3 Air ForceInterception, 11 plays, 54 yards
Q4 ArmyTurnover on downs, 9 plays, 62 yards
Q4 Air ForcePick-six, 12 plays (Army scores), 48 yards
Play by play
1st quarter6 drives, then Army 3, Air Force 0
Air Force Punt, 3 plays
15:00
1st & 10 at own 35
Trey Gronotte kickoff for 65 yds for a touchback
15:00
1st & 10 at own 25
PENALTY AFA False Start 5 yards from AFA25 to AFA20. NO PLAY.
14:51
1st & 15 at own 20
Dylan Carson run for 5 yds to the AFA 25
14:12
2nd & 10 at own 25
Quentin Hayes run for 7 yds to the AFA 32
13:31
3rd & 3 at own 32
Timeout Air Force, clock 13:31
13:22
3rd & 3 at own 32
Quentin Hayes run for 2 yds to the AFA 34
12:48
4th & 1 at own 34
Carson Bay punt for 36 yds, fair catch by Tyrell Robinson at the ARMY 30
Army Field goal, 11 plays
12:38
1st & 10 at own 30
Kanye Udoh run for 7 yds to the ARMY 37
12:07
2nd & 3 at own 37
Dewayne Coleman run for 2 yds to the ARMY 39
11:27
3rd & 1 at own 39
Kanye Udoh run for 3 yds to the ARMY 42 for a 1ST down
10:47
1st & 10 at own 42
Dewayne Coleman run for 12 yds to the AFA 46 for a 1ST down
10:11
1st & 10 at opp 46
Kanye Udoh run for 1 yd to the AFA 45
9:20
2nd & 9 at opp 45
Dewayne Coleman pass complete to Tyrell Robinson for 4 yds to the AFA 41
8:45
3rd & 5 at opp 41
Dewayne Coleman pass complete to Casey Reynolds for 24 yds to the AFA 17 for a 1ST down
8:15
1st & 10 at opp 17
Kanye Udoh run for 7 yds to the AFA 10
7:38
2nd & 3 at opp 10
Dewayne Coleman run for no gain to the AFA 10
7:06
3rd & 3 at opp 10
PENALTY ARMY False Start (Katsigiannis,Bill) 5 yards from AFA10 to AFA15. NO PLAY.
6:41
3rd & 8 at opp 15
Noah Short run for 2 yds to the AFA 13 Army Penalty, Offensive Holding (Yards) declined
6:35
4th & 6 at opp 13
Trey Gronotte 30 yd FG GOODArmy 3, Air Force 0
Air Force Punt, 3 plays
6:35
1st & 10 at own 35
Trey Gronotte kickoff for 65 yds for a touchback
6:25
1st & 10 at own 25
Cade Harris run for no gain to the AFA 25
5:39
2nd & 10 at own 25
Quentin Hayes sacked by Kody Harris-Miller for a loss of 5 yards to the AFA 20
5:00
3rd & 15 at own 20
Quentin Hayes sacked for a loss of 7 yards to the AFA 13
4:22
4th & 22 at own 13
Carson Bay punt for 41 yds, punt out-of-bounds at the ARMY 46
Army Punt, 3 plays
4:16
1st & 10 at own 46
Kanye Udoh run for 5 yds to the AFA 49
3:42
2nd & 5 at opp 49
Kanye Udoh run for 2 yds to the AFA 47
2:56
3rd & 3 at opp 47
Dewayne Coleman run for 1 yd to the AFA 48
2:27
4th & 4 at opp 48
James Wagenseller punt for 41 yds, punt out-of-bounds at the AFA 7
Air Force Punt, 3 plays
2:22
1st & 10 at own 7
Quentin Hayes pass incomplete
2:13
2nd & 10 at own 7
Terrence Gist run for 7 yds to the AFA 14
1:36
3rd & 3 at own 14
Quentin Hayes pass incomplete
1:28
4th & 3 at own 14
Carson Bay punt for 30 yds
Army Field goal, 8 plays
1:22
1st & 10 at opp 44
Dewayne Coleman run for 4 yds to the AFA 40
0:47
2nd & 6 at opp 40
Dewayne Coleman run for 1 yd to the AFA 39
0:00
3rd & 5 at opp 39
Dewayne Coleman run for 4 yds to the AFA 35
Q2 14:53
4th & 1 at opp 35
Kanye Udoh run for 5 yds to the AFA 30 for a 1ST down
Q2 14:19
1st & 10 at opp 30
(14:23) Shotgun Coleman,Dewayne pass incomplete deep middle to Fortner,Liam thrown to AFA00, 1ST DOWN, PENALTY AFA Pass Interference (Chen ,Kyle) 15 yards from AFA30 to AFA15, 1ST DOWN. NO PLAY.
Q2 14:05
1st & 10 at opp 15
Dewayne Coleman run for 2 yds to the AFA 13
Q2 13:34
2nd & 8 at opp 13
Tyrell Robinson run for 2 yds to the AFA 11
Q2 12:48
3rd & 6 at opp 11
Dewayne Coleman run for 4 yds to the AFA 15 Dewayne Coleman fumbled, recovered by AFA Dewayne Coleman
Q2 12:37
4th & 10 at opp 15
Trey Gronotte 32 yd FG GOODArmy 6, Air Force 0
2nd quarter4 drives, then Army 6, Air Force 3
Air Force Punt, 8 plays
12:37
1st & 10 at own 35
Trey Gronotte kickoff for 60 yds
12:22
1st & 10 at own 25
Kade Frew run for 2 yds to the AFA 23
11:52
2nd & 12 at own 23
Quentin Hayes run for 8 yds to the AFA 31
11:12
3rd & 4 at own 31
Quentin Hayes pass complete to Brandon Engel for 14 yds to the AFA 45 for a 1ST down
10:42
1st & 10 at own 45
Quentin Hayes run for 8 yds to the ARMY 47
10:13
2nd & 2 at opp 47
Dylan Carson run for 2 yds to the ARMY 45 for a 1ST down
9:35
1st & 10 at opp 45
Dylan Carson run for 3 yds to the ARMY 42
8:58
2nd & 7 at opp 42
Quentin Hayes sacked by Brett Gerena for a loss of 3 yards to the ARMY 45
8:15
3rd & 10 at opp 45
Quentin Hayes pass incomplete
8:04
4th & 10 at opp 45
Carson Bay punt for 45 yds for a touchback
Army Punt, 3 plays
7:58
1st & 10 at own 20
Dewayne Coleman run for 1 yd to the ARMY 21
7:19
2nd & 9 at own 21
Timeout Army, clock 07:19
7:12
2nd & 9 at own 21
Dewayne Coleman pass incomplete
7:07
3rd & 9 at own 21
Dewayne Coleman pass incomplete
7:00
4th & 9 at own 21
James Wagenseller punt for 42 yds, fair catch by Brandon Engel at the AFA 37
Air Force Field goal, 11 plays
6:54
1st & 10 at own 37
Quentin Hayes pass incomplete
6:45
2nd & 10 at own 37
Terrence Gist run for 4 yds to the AFA 41
6:03
3rd & 6 at own 41
Quentin Hayes pass complete to Cade Harris for 8 yds to the AFA 49 for a 1ST down
5:30
1st & 10 at own 49
(05:35) Carson,Dylan rush left for 12 yards gain to the ARMY39 (Platt,Donavon) PENALTY AFA Chop Block (McAnninch,Michael) 15 yards from AFA49 to AFA34. NO PLAY.
5:01
1st & 25 at own 34
Quentin Hayes run for 21 yds to the ARMY 45
4:19
2nd & 4 at opp 45
Terrence Gist run for 3 yds to the ARMY 42
3:34
3rd & 1 at opp 42
Quentin Hayes run for 4 yds to the ARMY 38 for a 1ST down
2:48
1st & 10 at opp 38
Quentin Hayes run for 19 yds to the ARMY 19 for a 1ST down
2:17
1st & 10 at opp 19
Terrence Gist run for 1 yd to the ARMY 18
2:00
2nd & 9 at opp 18
Timeout Army, clock 02:00
1:55
2nd & 9 at opp 18
Quentin Hayes pass complete to Cade Harris for 4 yds to the ARMY 14
1:51
3rd & 5 at opp 14
Quentin Hayes pass incomplete
1:47
4th & 5 at opp 14
Matthew Dapore 32 yd FG GOODArmy 6, Air Force 3
1:44
1st & 10 at own 35
Reagan Tubbs kickoff for 50 yds , Lloyd Benson III return for 12 yds to the ARMY 47 Army Penalty, Offensive Holding (10 Yards) to the ARMY 15
Army End of half, 6 plays
1:38
1st & 10 at own 15
Dewayne Coleman run for 3 yds to the ARMY 18
1:14
2nd & 7 at own 18
Dewayne Coleman pass complete to Noah Short for 10 yds to the ARMY 28 for a 1ST down
0:53
1st & 10 at own 28
Dewayne Coleman pass complete to Cam Schurr for 5 yds to the ARMY 33
0:44
2nd & 5 at own 33
Dewayne Coleman pass incomplete
0:39
3rd & 5 at own 33
Dewayne Coleman pass complete to Miles Stewart for 5 yds to the ARMY 38 for a 1ST down
0:00
1st & 10 at own 38
Dewayne Coleman sacked by Lincoln Tuioti-Mariner for a loss of 8 yards to the ARMY 30
3rd quarter4 drives, then Army 13, Air Force 3
Army Touchdown, 9 plays
15:00
1st & 10 at own 35
Reagan Tubbs kickoff for 49 yds
14:53
1st & 10 at own 35
Kanye Udoh run for 6 yds to the ARMY 41
14:20
2nd & 4 at own 41
Kanye Udoh run for 5 yds to the ARMY 36
13:41
3rd & 9 at own 36
Dewayne Coleman run for 7 yds to the ARMY 43
12:58
4th & 2 at own 43
Kanye Udoh run for 8 yds to the AFA 49 for a 1ST down
12:35
1st & 10 at opp 49
Kanye Udoh run for 5 yds to the AFA 44
11:55
2nd & 5 at opp 44
Kanye Udoh run for 10 yds to the AFA 34 for a 1ST down
11:13
1st & 10 at opp 34
Dewayne Coleman run for 15 yds to the AFA 19 for a 1ST down
10:33
1st & 10 at opp 19
Kanye Udoh run for 7 yds to the AFA 12
9:59
2nd & 3 at opp 12
Kanye Udoh run for 12 yds for a TD Air Force Penalty, Face Mask (15 yards) (Aiden Swartz) to the AFA 0 (Trey Gronotte KICK)Army 13, Air Force 3
Air Force Punt, 5 plays
9:54
1st & 10 at the 50
Trey Gronotte kickoff for 42 yds , Tylor Latham return for 16 yds to the AFA 24
9:47
1st & 10 at own 24
Terrence Gist run for 8 yds to the AFA 32
9:17
2nd & 2 at own 32
Terrence Gist run for 4 yds to the AFA 36 for a 1ST down
8:35
1st & 10 at own 36
Quentin Hayes run for 1 yd to the AFA 37 Quentin Hayes fumbled, recovered by AFA
7:50
2nd & 9 at own 37
Quentin Hayes sacked by Kody Harris-Miller for a loss of 7 yards to the AFA 30
7:30
3rd & 16 at own 30
Quentin Hayes pass incomplete
7:19
4th & 16 at own 30
Luke Freer punt for 45 yds , Tyrell Robinson returns for 1 yd to the ARMY 26
7:19
4th & 16 at own 30
Luke Freer punt for 45 yds , Tyrell Robinson returns for 1 yd to the ARMY 26
Army Punt, 3 plays
7:12
1st & 10 at own 26
Kanye Udoh run for 1 yd to the ARMY 27
6:35
2nd & 9 at own 27
Kanye Udoh run for 4 yds to the ARMY 31
6:00
3rd & 5 at own 31
(06:00) PENALTY ARMY False Start (Finucane,Connor) 5 yards from ARMY31 to ARMY26. NO PLAY.
5:33
3rd & 10 at own 26
Kanye Udoh run for 2 yds to the ARMY 28
5:02
4th & 8 at own 28
James Wagenseller punt for 48 yds, fair catch by Brandon Engel at the AFA 24
Air Force Interception, 11 plays
4:54
1st & 10 at own 24
Terrence Gist run for 4 yds to the AFA 28
4:11
2nd & 6 at own 28
Quentin Hayes pass complete to Jared Roznos for 8 yds to the AFA 36 for a 1ST down
3:38
1st & 10 at own 36
Cade Harris run for 13 yds to the AFA 49 for a 1ST down
2:52
1st & 10 at own 49
Quentin Hayes pass complete to Tre Roberson for 7 yds to the ARMY 44
2:23
2nd & 3 at opp 44
Quentin Hayes run for no gain to the ARMY 44
1:43
3rd & 3 at opp 44
Terrence Gist run for 3 yds to the ARMY 41 for a 1ST down
1:01
1st & 10 at opp 41
Quentin Hayes run for 4 yds to the ARMY 37
0:00
2nd & 6 at opp 37
Terrence Gist run for 1 yd to the ARMY 36
Q4 14:55
3rd & 5 at opp 36
(15:00) Shotgun Hayes,Quentin pass incomplete short left to Roznos,Jared thrown to ARMY18 broken up by Larkin,Casey, 1ST DOWN, PENALTY ARMY Pass Interference (Larkin,Casey) 15 yards from ARMY36 to ARMY21, 1ST DOWN. NO PLAY.
Q4 14:46
1st & 10 at opp 21
Quentin Hayes run for no gain to the ARMY 21
Q4 14:08
2nd & 10 at opp 21
Timeout Air Force, clock 14:08
Q4 13:59
2nd & 10 at opp 21
Cade Harris run for 1 yd to the ARMY 22
Q4 13:24
3rd & 11 at opp 22
Quentin Hayes pass intercepted
4th quarter2 drives, then Army 20, Air Force 3
Army Turnover on downs, 9 plays
13:17
1st & 10 at own 7
Kanye Udoh run for 8 yds to the ARMY 15
12:47
2nd & 2 at own 15
Dewayne Coleman run for 3 yds to the ARMY 18 for a 1ST down
12:04
1st & 10 at own 18
Kanye Udoh run for 3 yds to the ARMY 21
11:26
2nd & 7 at own 21
Tyrell Robinson run for 3 yds to the ARMY 24
10:37
3rd & 4 at own 24
Kanye Udoh run for 40 yds to the AFA 36 for a 1ST down
10:02
1st & 10 at opp 36
Kanye Udoh run for 2 yds to the AFA 34
9:24
2nd & 8 at opp 34
Hayden Reed run for 2 yds to the AFA 32
8:44
3rd & 6 at opp 32
Dewayne Coleman run for 1 yd to the AFA 31
8:04
4th & 5 at opp 31
Matthew Rhodes pass incomplete
Air Force Pick-six, 12 plays (Army scores)
7:53
1st & 10 at own 31
Tylor Latham run for 1 yd to the AFA 30
7:22
2nd & 11 at own 30
Quentin Hayes pass complete to Cade Harris for 6 yds to the AFA 36
6:57
3rd & 5 at own 36
Quentin Hayes sacked by Kyle Lewis for a loss of 6 yards to the AFA 30
6:13
4th & 11 at own 30
Quentin Hayes run for 19 yds to the AFA 49 for a 1ST down
5:56
1st & 10 at own 49
Quentin Hayes run for 2 yds to the AFA 47
5:11
2nd & 12 at own 47
Quentin Hayes pass complete to Jared Roznos for 7 yds to the ARMY 46
4:44
3rd & 5 at opp 46
Quentin Hayes run for 4 yds to the ARMY 42
4:19
4th & 1 at opp 42
Quentin Hayes run for 3 yds to the ARMY 39 for a 1ST down
3:51
1st & 10 at opp 39
Quentin Hayes sacked by Elo Modozie for a loss of 9 yards to the ARMY 48
3:06
2nd & 19 at opp 48
Quentin Hayes run for no gain to the ARMY 48
2:25
3rd & 19 at opp 48
Josh Johnson pass complete to Cade Harris for 27 yds to the ARMY 21 for a 1ST down
1:51
1st & 10 at opp 21
Josh Johnson pass intercepted Max DiDomenico return for no gain to the AFA 25
1:46
1st & 0 at own 0
Kanye Udoh 25 Yd Run (Trey Gronotte Kick)Army 20, Air Force 3
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.