Referee Daniel Romeo; umpire Scott Teifer; head linesman Andy Warner; line judge Marc Bovos; side judge James Murphy; field judge Ed Vinzant; back judge Chris Alston; center judge Ken RayGame officials: stats.ncaa.org box scores, via SportsDataverse
From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Air Force
Wyoming
337
Total yards
362
188
Passing yards
173
149
Rushing yards
189
9.9
Yards per pass
6.4
3.8
Yards per rush
3.9
12
First downs
22
4–14
Third downs
5–14
0–0
Fourth downs
0–0
4
Turnovers
1
4–45
Penalties
5–50
26:00
Possession
34:00
3
Sacks (by defense)
3
Efficiency
Air Force
Wyoming
32%
Success rate
33%
0.08
EPA per play
0.03
1.82
Explosiveness
1.54
0.05
Rushing EPA
−0.03
0.11
Passing EPA
0.12
21%
Passing-down success
33%
−0.11
First-down EPA
−0.15
0.37
Second-down EPA
0.09
0.03
Third-down EPA
0.31
11%
Havoc by its defense
22%
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 66% to win. Wyoming won as Elo’s underdog.
The line
Air Force −13.5, over/under 50.
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 82%, Wyoming 18%. 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. Wyoming drives left to right, Air Force right to left.
Q1 WyomingTouchdown, 11 plays, 75 yards
Q1 Air ForcePunt, 3 plays, 0 yards
Q1 WyomingPunt, 5 plays, 19 yards
Q1 Air ForcePunt, 3 plays, 1 yard
Q1 WyomingFumble, 3 plays, 6 yards
Q1 Air ForceInterception, 6 plays, 3 yards
Q1 WyomingPunt, 4 plays, 15 yards
Q2 Air ForceField goal, 9 plays, 50 yards
Q2 WyomingTouchdown, 14 plays, 75 yards
Q2 Air ForcePunt, 3 plays, 3 yards
Q2 WyomingPunt, 3 plays, 3 yards
Q2 Air ForceField goal, 4 plays, 7 yards
Q2 WyomingEnd of half, 1 play, −1 yard
Q3 Air ForcePunt, 4 plays, 18 yards
Q3 WyomingPunt, 7 plays, 40 yards
Q3 Air ForceFumble return TD, 1 play (Wyoming scores), 0 yards
Q3 Air ForcePunt, 3 plays, 9 yards
Q3 WyomingPunt, 3 plays, 4 yards
Q3 Air ForcePunt, 4 plays, −12 yards
Q3 WyomingTouchdown, 2 plays, 43 yards
Q3 Air ForceTouchdown, 1 play, 75 yards
Q3 WyomingPunt, 3 plays, 6 yards
Q3 Air ForceInterception, 2 plays, 14 yards
Q3 WyomingPunt, 4 plays, 12 yards
Q4 Air ForceTouchdown, 11 plays, 84 yards
Q4 WyomingPunt, 6 plays, 18 yards
Q4 Air ForceTouchdown, 3 plays, 65 yards
Q4 WyomingTouchdown, 5 plays, 37 yards
Q4 Air ForceInterception, 3 plays, 0 yards
Q4 WyomingEnd of game, 4 plays, 10 yards
Play by play
1st quarter7 drives, then Wyoming 7, Air Force 0
Wyoming Touchdown, 11 plays
15:00
1st & 10 at own 35
Luke Strebel kickoff for 65 yds for a touchback
15:00
1st & 10 at own 25
Josh Allen pass complete to C.J. Johnson for 8 yds to the Wyom 33
15:00
2nd & 2 at own 33
Brian Hill run for 3 yds to the Wyom 36 for a 1ST down
15:00
1st & 10 at own 36
Josh Allen pass complete to Austin Conway for 14 yds to the 50 yard line WYOMING Penalty, Offensive holding (-10 Yards) to the Wyom 40
15:00
3rd & 15 at own 42
Josh Allen run for 27 yds to the AFA 31 for a 1ST down
15:00
1st & 10 at opp 31
Brian Hill run for 7 yds to the AFA 24
15:00
2nd & 3 at opp 24
Josh Allen pass complete to Austin Conway for 7 yds to the AFA 17 for a 1ST down
15:00
1st & 10 at opp 17
Josh Allen pass incomplete
15:00
1st & 11 at own 40
Brian Hill run for 7 yds to the Wyom 47
15:00
2nd & 4 at own 47
Josh Allen sacked by Jack Flor for a loss of 5 yards to the Wyom 42
15:00
3rd & 9 at own 42
Josh Allen pass incomplete to Tanner Gentry
10:40
2nd & 10 at opp 17
Josh Allen pass complete to Tanner Gentry for 17 yds for a TD, (Cooper Rothe KICK)Wyoming 7, Air Force 0
Air Force Punt, 3 plays
10:40
1st & 0 at own 35
Cooper Rothe kickoff for 63 yds , Timothy McVey return for 18 yds to the AFA 20
10:40
1st & 10 at own 20
Tyler Williams run for no gain to the AFA 20
10:40
2nd & 10 at own 20
Nate Romine pass incomplete
10:40
3rd & 10 at own 20
Nate Romine pass incomplete
10:40
4th & 10 at own 20
Steve Brosy punt for 47 yds , Austin Conway returns for 4 yds to the Wyom 37
Wyoming Punt, 5 plays
9:43
1st & 10 at own 37
Brian Hill run for 3 yds to the Wyom 40
9:43
2nd & 7 at own 40
Josh Allen pass complete to C.J. Johnson for 9 yds to the Wyom 49 for a 1ST down
9:43
1st & 10 at own 49
Brian Hill run for no gain to the Wyom 49
9:43
2nd & 10 at own 49
Josh Allen pass incomplete to Tanner Gentry
9:43
3rd & 10 at own 49
Josh Allen pass complete to Jacob Hollister for 7 yds to the AFA 44
9:43
4th & 3 at opp 44
Ethan Wood punt for 35 yds, downed at the AFA 9
Air Force Punt, 3 plays
7:13
1st & 10 at own 9
Nate Romine run for a loss of 8 yards to the AFA 1 Nate Romine fumbled,
7:13
2nd & 18 at own 1
Shayne Davern run for 5 yds to the AFA 6
7:13
3rd & 13 at own 6
Shayne Davern run for 4 yds to the AFA 10
7:13
4th & 9 at own 10
Steve Brosy punt for 44 yds, fair catch by Austin Conway at the Wyom 46
Wyoming Fumble, 3 plays
5:12
1st & 10 at own 46
Josh Allen pass incomplete
5:12
2nd & 10 at own 46
Shaun Wick run for 6 yds to the AFA 48
5:12
3rd & 4 at opp 48
Josh Allen run for 1 yd to the AFA 48 Josh Allen fumbled, forced by Roland Ladipo, recovered by AFA Roland Ladipo
Air Force Interception, 6 plays
4:18
1st & 10 at own 48
D.J. Johnson run for 2 yds to the 50 yard line
4:18
2nd & 8 at the 50
D.J. Johnson run for 4 yds to the Wyom 46
4:18
3rd & 4 at opp 46
Timothy McVey run for 8 yds to the Wyom 38 for a 1ST down
4:18
1st & 10 at opp 38
Nate Romine sacked by Logan Wilson for a loss of 16 yards to the AFA 46
4:18
2nd & 26 at own 46
Shayne Davern run for 5 yds to the Wyom 49
4:18
3rd & 21 at opp 49
Nate Romine pass intercepted Marcus Epps return for 27 yds to the Wyom 22 WYOMING Penalty, illegal block (15 Yards) to the Wyom 39
Wyoming Punt, 4 plays
1:24
1st & 10 at own 39
Brian Hill run for 15 yds to the AFA 46 for a 1ST down
1:24
1st & 10 at opp 46
Brian Hill run for no gain to the AFA 46
1:24
2nd & 10 at opp 46
Josh Allen pass incomplete
1:24
3rd & 10 at opp 46
Josh Allen pass incomplete to C.J. Johnson, broken up by Haji Dunn Jr.
1:24
4th & 10 at opp 46
Ethan Wood punt for 46 yds for a touchback
2nd quarter6 drives, then Wyoming 14, Air Force 6
Air Force Field goal, 9 plays
15:00
1st & 10 at own 20
D.J. Johnson run for 4 yds to the AFA 24
15:00
2nd & 6 at own 24
D.J. Johnson run for 32 yds to the Wyom 44 for a 1ST down
15:00
1st & 10 at opp 44
Jacobi Owens run for 2 yds to the Wyom 42
15:00
2nd & 8 at opp 42
Shayne Davern run for a loss of 2 yards to the Wyom 44
15:00
3rd & 10 at opp 44
Nate Romine pass complete to Ryan Reffitt for 10 yds to the Wyom 34 for a 1ST down
15:00
1st & 10 at opp 34
D.J. Johnson run for 3 yds to the Wyom 31
15:00
2nd & 7 at opp 31
Nate Romine run for 1 yd to the Wyom 30
10:57
3rd & 6 at opp 30
Timeout WYOMING, clock 10:57
10:57
3rd & 6 at opp 30
Nate Romine pass incomplete
10:48
4th & 6 at opp 30
Luke Strebel 47 yd FG GOODWyoming 7, Air Force 3
Wyoming Touchdown, 14 plays
10:48
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
10:48
1st & 10 at own 25
Josh Allen pass complete to Austin Conway for 3 yds to the Wyom 28
10:48
2nd & 7 at own 28
Brian Hill run for 1 yd to the Wyom 29
10:48
3rd & 6 at own 29
Josh Allen pass complete to Jake Maulhardt for 7 yds to the Wyom 36 for a 1ST down
10:48
1st & 10 at own 36
Brian Hill run for 2 yds to the Wyom 38
10:48
2nd & 8 at own 38
Josh Allen pass incomplete to Tanner Gentry
10:48
3rd & 8 at own 38
Josh Allen pass complete to C.J. Johnson for 10 yds to the Wyom 48 for a 1ST down
7:56
1st & 10 at own 48
Timeout WYOMING, clock 07:56
7:56
1st & 10 at own 48
Brian Hill run for a loss of 1 yard to the Wyom 47
7:56
2nd & 11 at own 47
Josh Allen run for 12 yds to the AFA 41 for a 1ST down
7:56
1st & 10 at opp 41
Josh Allen pass incomplete to Tanner Gentry
7:56
2nd & 10 at opp 41
Josh Allen run for 11 yds to the AFA 30 for a 1ST down
7:56
1st & 10 at opp 30
Josh Allen pass complete to Austin Conway for no gain to the AFA 30
7:56
2nd & 10 at opp 30
Brian Hill run for 3 yds to the AFA 27 WYOMING Penalty, Offensive holding (-10 Yards) to the AFA 37
7:56
2nd & 17 at opp 37
Josh Allen pass complete to James Price for 17 yds to the AFA 20 for a 1ST down
4:51
1st & 10 at opp 20
Josh Allen pass complete to Jake Maulhardt for 20 yds for a TD, (Cooper Rothe KICK)Wyoming 14, Air Force 3
Air Force Punt, 3 plays
4:51
1st & 0 at own 35
Cooper Rothe kickoff for 65 yds for a touchback
4:51
1st & 10 at own 25
Tyler Williams run for no gain to the AFA 25
4:51
2nd & 10 at own 25
Jacobi Owens run for 3 yds to the AFA 28
4:51
3rd & 7 at own 28
Nate Romine pass incomplete
4:51
4th & 7 at own 28
Steve Brosy punt for 62 yds , Austin Conway returns for a loss of 6 yards to the Wyom 4
Wyoming Punt, 3 plays
3:18
1st & 10 at own 4
Brian Hill run for no gain to the Wyom 4
3:18
2nd & 10 at own 4
Brian Hill run for no gain to the Wyom 4
2:30
3rd & 10 at own 4
Timeout AIR FORCE, clock 02:30
2:30
3rd & 10 at own 4
Josh Allen run for 3 yds to the Wyom 7
2:30
4th & 7 at own 7
Ethan Wood punt for 23 yds, downed at the Wyom 30
Air Force Field goal, 4 plays
2:15
1st & 10 at opp 30
Nate Romine run for 8 yds to the Wyom 22
2:15
2nd & 2 at opp 22
Nate Romine pass incomplete
2:15
3rd & 2 at opp 22
Ronald Cleveland run for a loss of 1 yard to the Wyom 23
0:55
4th & 3 at opp 23
Timeout AIR FORCE, clock 00:55
0:51
4th & 3 at opp 23
Luke Strebel 41 yd FG GOODWyoming 14, Air Force 6
Wyoming End of half, 1 play
0:51
1st & 0 at own 35
Luke Strebel kickoff for 65 yds for a touchback
0:51
1st & 10 at own 25
ALLEN, Josh pass complete to GENTRY, Tanner for 50 yards to the AF25 (STEELHAMMER, We), PENALTY WY ineligible downfield on pass 5 yards to the WY20, NO PLAY.
0:40
1st & 15 at own 20
Timeout WYOMING, clock 00:40
0:40
1st & 15 at own 20
Brian Hill run for 4 yds to the Wyom 24
3rd quarter10 drives, then Wyoming 28, Air Force 13
Air Force Punt, 4 plays
15:00
2nd & 11 at own 35
Cooper Rothe kickoff for 65 yds for a touchback
15:00
1st & 10 at own 25
Nate Romine run for 15 yds to the AFA 40 for a 1ST down
15:00
1st & 10 at own 40
Nate Romine run for 6 yds to the AFA 46
15:00
2nd & 4 at own 46
Tyler Williams run for a loss of 3 yards to the AFA 43
15:00
3rd & 7 at own 43
Nate Romine pass incomplete to Jalen Robinette
15:00
4th & 7 at own 43
Steve Brosy punt for 37 yds, fair catch by Austin Conway at the Wyom 20
Wyoming Punt, 7 plays
13:00
1st & 10 at own 20
Brian Hill run for 4 yds to the Wyom 24
13:00
2nd & 6 at own 24
Brian Hill run for 8 yds to the Wyom 32 for a 1ST down
13:00
1st & 10 at own 32
Brian Hill run for 8 yds to the Wyom 40
13:00
2nd & 2 at own 40
Josh Allen pass complete to Jake Maulhardt for 15 yds to the AFA 45 for a 1ST down
13:00
1st & 10 at opp 45
Shaun Wick run for no gain to the AFA 45
13:00
2nd & 10 at opp 45
Shaun Wick run for 4 yds to the AFA 41
13:00
3rd & 6 at opp 41
Josh Allen run for 1 yd to the AFA 40
13:00
4th & 5 at opp 40
Ethan Wood punt for 25 yds, fair catch by Ronald Cleveland at the AFA 15
8:55
1st & 10 at own 15
Jacobi Owens run for no gain Jacobi Owens fumbled, recovered by Wyom D.J. May , return for 15 yds, (Cooper Rothe KICK)Wyoming 21, Air Force 6
Air Force Punt, 3 plays
8:55
1st & 0 at own 35
Cooper Rothe kickoff for 65 yds for a touchback
8:55
1st & 10 at own 25
Shayne Davern run for 1 yd to the AFA 26
8:55
2nd & 9 at own 26
Nate Romine run for 4 yds to the AFA 30
8:55
3rd & 5 at own 30
Timothy McVey run for 4 yds to the AFA 34
8:55
4th & 1 at own 34
Steve Brosy punt for 51 yds , Austin Conway returns for no gain to the Wyom 15
Wyoming Punt, 3 plays
7:24
1st & 10 at own 15
Josh Allen pass incomplete to Tanner Gentry
7:24
2nd & 10 at own 15
Brian Hill run for 4 yds to the Wyom 19
7:24
3rd & 6 at own 19
Josh Allen pass incomplete to Tanner Gentry
7:24
4th & 6 at own 19
Ethan Wood punt for 49 yds, fair catch by Ronald Cleveland at the AFA 32
Air Force Punt, 4 plays
6:25
1st & 10 at own 32
Tyler Williams run for 2 yds to the AFA 34 AIR FORCE Penalty, Offensive holding (-10 Yards) to the AFA 24
6:25
1st & 18 at own 24
Nate Romine pass incomplete to Ronald Cleveland
6:25
2nd & 18 at own 24
Jacobi Owens run for 4 yds to the AFA 28
6:25
3rd & 14 at own 28
Nate Romine sacked by Lucas Wacha for a loss of 8 yards to the AFA 20
6:25
4th & 22 at own 20
Steve Brosy punt for 47 yds , Austin Conway returns for 24 yds to the AFA 43
Wyoming Touchdown, 2 plays
4:30
1st & 10 at opp 43
ALLEN, Josh pass incomplete to GENTRY, Tanner, PENALTY AF holding 10 yards to the AF33, 1ST DOWN WY, NO PLAY.
4:30
1st & 10 at opp 33
Brian Hill run for 1 yd to the AFA 32
3:33
2nd & 9 at opp 32
Josh Allen pass complete to Jacob Hollister for 32 yds for a TD, (Cooper Rothe KICK)Wyoming 28, Air Force 6
Air Force Touchdown, 1 play
3:33
1st & 0 at own 35
Cooper Rothe kickoff for 65 yds for a touchback
3:21
1st & 10 at own 25
Nate Romine pass complete to Jalen Robinette for 75 yds for a TD, (Luke Strebel KICK)Wyoming 28, Air Force 13
Wyoming Punt, 3 plays
3:21
1st & 0 at own 35
Luke Strebel kickoff for 65 yds , D.J. May return for 25 yds to the Wyom 25
3:21
1st & 10 at own 25
Brian Hill run for 4 yds to the Wyom 29
3:21
2nd & 6 at own 29
Brian Hill run for 2 yds to the Wyom 31
3:21
3rd & 4 at own 31
Josh Allen pass incomplete
3:21
4th & 4 at own 31
Ethan Wood punt for 48 yds, fair catch by Ronald Cleveland at the AFA 21
Air Force Interception, 2 plays
1:53
1st & 10 at own 21
Nate Romine pass complete to Jalen Robinette for 14 yds to the AFA 35 for a 1ST down
1:53
1st & 10 at own 35
Nate Romine pass intercepted Antonio Hull return for a loss of 2 yards to the Wyom 32
Wyoming Punt, 4 plays
1:21
1st & 10 at own 32
Brian Hill run for 1 yd to the Wyom 33
1:21
2nd & 9 at own 33
ALLEN, Josh pass incomplete to HOLLISTER, J., PENALTY AF pass interference 15 yards to the WY48, 1ST DOWN WY, NO PLAY.
1:21
1st & 10 at own 48
Brian Hill run for 4 yds to the AFA 48
Q4 15:00
2nd & 6 at opp 48
Josh Allen pass incomplete to Jake Maulhardt, broken up by Weston Steelhammer
Q4 15:00
3rd & 6 at opp 48
Josh Allen sacked by Santo Coppola for a loss of 8 yards to the Wyom 44
Q4 15:00
4th & 14 at own 44
Ethan Wood punt for 40 yds, downed at the AFA 16
4th quarter6 drives, then Wyoming 35, Air Force 26
Air Force Touchdown, 11 plays
14:02
1st & 10 at own 16
D.J. Johnson run for 28 yds to the AFA 44 for a 1ST down
14:02
1st & 10 at own 44
Nate Romine run for 3 yds to the AFA 47
14:02
2nd & 7 at own 47
Timothy McVey run for 28 yds to the Wyom 25 for a 1ST down
14:02
1st & 10 at opp 25
Timothy McVey run for no gain to the Wyom 25
14:02
2nd & 10 at opp 25
Nate Romine pass incomplete to Jalen Robinette
14:02
3rd & 10 at opp 25
Nate Romine pass complete to Jalen Robinette for 12 yds to the Wyom 13 for a 1ST down
14:02
1st & 10 at opp 13
Nate Romine run for 5 yds to the Wyom 8
14:02
2nd & 5 at opp 8
Timothy McVey run for a loss of 1 yard to the Wyom 9
14:02
3rd & 6 at opp 9
Jacobi Owens run for 8 yds to the Wyom 1 for a 1ST down
14:02
1st & goal at opp 1
D.J. Johnson run for no gain to the Wyom 1
9:03
2nd & goal at opp 1
Nate Romine run for 1 yd for a TD, (Luke Strebel KICK)Wyoming 28, Air Force 20
Wyoming Punt, 6 plays
9:03
1st & 0 at own 35
Luke Strebel kickoff for 61 yds , D.J. May return for 16 yds to the WYOMING 49 WYOMING Penalty, Offensive holding (10 Yards) to the Wyom 10
9:03
1st & 10 at own 10
Brian Hill run for a loss of 3 yards to the Wyom 7
8:22
2nd & 13 at own 7
Timeout WYOMING, clock 08:22
8:22
2nd & 13 at own 7
Josh Allen run for 8 yds to the Wyom 15
8:22
3rd & 5 at own 15
Josh Allen pass complete to Tanner Gentry for 7 yds to the Wyom 22 for a 1ST down
8:22
1st & 10 at own 22
Brian Hill run for 2 yds to the Wyom 24
8:22
2nd & 8 at own 24
Josh Allen run for 1 yd to the Wyom 25
8:22
3rd & 7 at own 25
Josh Allen run for 3 yds to the Wyom 28
8:22
4th & 4 at own 28
Ethan Wood punt for 41 yds , Ronald Cleveland returns for 4 yds to the AFA 35
Air Force Touchdown, 3 plays
4:57
1st & 10 at own 35
Nate Romine pass complete to Timothy McVey for 28 yds to the Wyom 37 for a 1ST down
4:57
1st & 10 at opp 37
Nate Romine sacked by Youhanna Ghaifan for a loss of 2 yards to the Wyom 39
4:57
2nd & 12 at opp 39
ROMINE, Nate pass complete to ROBINETTE, Jale for 25 yards to the WY14 (GAFFORD, Rico), PENALTY AF holding 10 yards to the WY49, NO PLAY.
3:31
2nd & 22 at opp 49
Timothy McVey 49 Yd pass from Nate Romine (Two-Point Run Conversion Failed)Wyoming 28, Air Force 26
Wyoming Touchdown, 5 plays
3:31
1st & 0 at own 35
Luke Strebel kickoff for 8 yds , Lucas Wacha return for 6 yds to the AFA 37 , Lucas Wacha return for no gain to the AFA 37
3:31
1st & 10 at opp 37
Tanner Gentry run for 15 yds to the AFA 22 for a 1ST down
3:31
1st & 10 at opp 22
Brian Hill run for no gain to the AFA 22
2:45
2nd & 10 at opp 22
Timeout AIR FORCE, clock 02:45
2:45
2nd & 10 at opp 22
Josh Allen sacked by Weston Steelhammer for a loss of 11 yards to the AFA 33
2:37
3rd & 21 at opp 33
Timeout AIR FORCE, clock 02:37
2:37
3rd & 21 at opp 33
Josh Allen run for 32 yds to the AFA 1 for a 1ST down
2:01
1st & goal at opp 1
Brian Hill run for 1 yd for a TD, (Cooper Rothe KICK)Wyoming 35, Air Force 26
Air Force Interception, 3 plays
2:01
1st & 0 at own 35
Cooper Rothe kickoff for 65 yds for a touchback
2:01
1st & 10 at own 25
Nate Romine pass incomplete to Jalen Robinette, broken up by Rico Gafford
2:01
2nd & 10 at own 25
Nate Romine pass incomplete to Jacobi Owens
2:01
3rd & 10 at own 25
Nate Romine pass intercepted Antonio Hull return for a loss of 5 yards to the Wyom 34
Wyoming End of game, 4 plays
1:43
1st & 10 at own 34
Brian Hill run for 7 yds to the Wyom 41
1:43
2nd & 3 at own 41
Brian Hill run for 5 yds to the Wyom 46 for a 1ST down
1:43
1st & 10 at own 46
TEAM run for a loss of 1 yard to the Wyom 45
1:43
2nd & 11 at own 45
TEAM run for a loss of 1 yard to the Wyom 44
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.