Final at Ryan Field, EvanstonTV: BTNAttendance 23,291
At kickoff
48°F, clear, wind 14 mph from the west, gusts to 21 mphWeather: NOAA NCEI Integrated Surface Database; Palwaukee Municipal Airport (KPWK), 19 km from the stadium, eight minutes before kickoff
From CollegeFootballData’s box score. Names lead to each player’s page. ★ a career high on file.
Team stats
Purdue
Northwestern
443
Total yards
329
140
Passing yards
230
303
Rushing yards
99
6.1
Yards per pass
9.2
5.6
Yards per rush
2.9
21
First downs
12
6–16
Third downs
5–15
2–5
Fourth downs
0–0
4
Turnovers
1
5–40
Penalties
4–30
34:43
Possession
25:17
5
Sacks (by defense)
3
Efficiency
Purdue
Northwestern
43%
Success rate
28%
−0.08
EPA per play
0.07
1.17
Explosiveness
1.78
0.10
Rushing EPA
0.01
−0.43
Passing EPA
0.14
37%
Passing-down success
33%
−0.25
First-down EPA
−0.33
0.19
Second-down EPA
0.15
0.36
Third-down EPA
0.70
19%
Havoc by its defense
21%
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)
Northwestern 53% to win. Elo’s favorite won.
The line
Northwestern −1, over/under 48.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 Northwestern 57%, Purdue 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. Northwestern drives left to right, Purdue right to left.
Q1 PurduePunt, 3 plays, −6 yards
Q1 NorthwesternTouchdown, 4 plays, 53 yards
Q1 PurdueMissed FG, 9 plays, 48 yards
Q1 NorthwesternPunt, 6 plays, 19 yards
Q1 PurdueTurnover on downs, 13 plays, 71 yards
Q2 NorthwesternPunt, 4 plays, −10 yards
Q2 PurdueTurnover on downs, 9 plays, 30 yards
Q2 NorthwesternPunt, 4 plays, 33 yards
Q2 PurdueFumble, 3 plays, 29 yards
Q2 NorthwesternPunt, 6 plays, 17 yards
Q2 PurdueInterception, 1 play, 0 yards
Q2 NorthwesternMissed FG, 4 plays, 0 yards
Q2 PurdueEnd of half, 1 play, 4 yards
Q3 NorthwesternPunt, 3 plays, 6 yards
Q3 PurduePunt, 3 plays, 7 yards
Q3 NorthwesternPunt, 6 plays, 11 yards
Q3 NorthwesternField goal, 4 plays, 9 yards
Q3 PurdueTouchdown, 9 plays, 82 yards
Q3 NorthwesternTouchdown, 4 plays, 71 yards
Q3 PurduePunt, 3 plays, 5 yards
Q3 NorthwesternTouchdown, 8 plays, 83 yards
Q4 PurdueTurnover on downs, 10 plays, 53 yards
Q4 NorthwesternInterception, 4 plays, 22 yards
Q4 PurdueTouchdown, 7 plays, 77 yards
Q4 NorthwesternPunt, 3 plays, 2 yards
Q4 PurdueInterception, 7 plays, 28 yards
Q4 NorthwesternEnd of game, 1 play, −2 yards
Play by play
1st quarter5 drives, then Northwestern 6, Purdue 0
Purdue Punt, 3 plays
14:53
Henry Helms kickoff for 60 yds
14:53
1st & 10 at own 28
Tyrone Tracy Jr. run for 2 yds to the PUR 30
14:53
2nd & 8 at own 30
Bennett Meredith pass incomplete
14:53
3rd & 8 at own 30
Bennett Meredith sacked by Anto Saka and Xander Mueller for a loss of 8 yards to the PUR 22
13:32
4th & 16 at own 22
Jack Ansell punt for 31 yds, downed at the NU 47
Northwestern Touchdown, 4 plays
13:32
1st & 10 at own 47
Cam Porter run for no gain to the NU 47
13:32
2nd & 10 at own 47
Ben Bryant pass complete to A.J. Henning for 35 yds to the PUR 18 for a 1ST down
13:32
1st & 10 at opp 18
Cam Porter run for 11 yds to the PUR 7 for a 1ST down
11:40
1st & goal at opp 7
Cam Porter run for 7 yds for a TD (Two-Point Conversion failed)Northwestern 6, Purdue 0
Purdue Missed FG, 9 plays
11:35
1st & 10 at own 25
Purdue Penalty, False Start (-5 Yards) to the PUR 20
11:35
Henry Helms kickoff for 60 yds
11:35
1st & 15 at own 20
Devin Mockobee run for 13 yds to the PUR 33
11:35
2nd & 2 at own 33
Devin Mockobee run for 1 yd to the PUR 34
11:35
3rd & 1 at own 34
Ryan Browne run for 7 yds to the PUR 41 for a 1ST down
11:35
1st & 10 at own 41
Devin Mockobee run for 1 yd to the PUR 42
11:35
2nd & 9 at own 42
Ryan Browne pass complete to Tyrone Tracy Jr. for 28 yds to the NU 30 for a 1ST down
11:35
1st & 10 at opp 30
Ryan Browne sacked for a loss of 10 yards to the NU 40
11:35
2nd & 20 at opp 40
Ryan Browne run for 5 yds to the NU 35
11:35
3rd & 15 at opp 35
Ryan Browne run for 8 yds to the NU 27
7:14
4th & 7 at opp 27
Ben Freehill 44 yd FG MISSED
Northwestern Punt, 6 plays
7:14
1st & 10 at own 27
Ben Bryant pass incomplete
7:14
2nd & 10 at own 27
Ben Bryant pass complete to Bryce Kirtz for 5 yds to the NU 32
7:14
3rd & 5 at own 32
Ben Bryant pass complete to Cam Porter for 8 yds to the NU 40 for a 1ST down
7:14
1st & 10 at own 40
Cam Porter run for 6 yds to the NU 46
7:14
2nd & 4 at own 46
Ben Bryant pass incomplete
7:14
3rd & 4 at own 46
Ben Bryant pass incomplete
5:13
4th & 4 at own 46
Hunter Renner punt for 40 yds, downed at the PUR 14
Purdue Turnover on downs, 13 plays
5:13
1st & 10 at own 14
Tyrone Tracy Jr. run for 17 yds to the PUR 31 for a 1ST down
5:13
1st & 10 at own 31
Bennett Meredith pass complete to Deion Burks for 2 yds to the PUR 33
5:13
2nd & 8 at own 33
Purdue Penalty, False Start (-5 Yards) to the PUR 28
5:13
2nd & 13 at own 28
Tyrone Tracy Jr. run for 27 yds to the NU 45 for a 1ST down
5:13
1st & 10 at opp 45
Bennett Meredith pass complete to Deion Burks for 6 yds to the NU 39
5:13
2nd & 4 at opp 39
Devin Mockobee run for 6 yds to the NU 33 for a 1ST down
5:13
1st & 10 at opp 33
Devin Mockobee run for 1 yd to the NU 32
5:13
2nd & 9 at opp 32
Devin Mockobee run for a loss of 3 yards to the NU 35
5:13
3rd & 12 at opp 35
Bennett Meredith run for 11 yds to the NU 24
0:00
4th & 1 at opp 24
Tyrone Tracy Jr. run for 1 yd to the NU 23 for a 1ST down
Q2 15:00
1st & 10 at opp 23
Bennett Meredith pass complete to Tyrone Tracy Jr. for 9 yds to the NU 14
Q2 15:00
2nd & 1 at opp 14
Tyrone Tracy Jr. run for no gain to the NU 14
Q2 15:00
3rd & 1 at opp 14
Tyrone Tracy Jr. run for a loss of 1 yard to the NU 15
Q2 13:00
4th & 2 at opp 15
Tyrone Tracy Jr. run for no gain to the NU 15
2nd quarter8 drives, then Northwestern 6, Purdue 0
Northwestern Punt, 4 plays
13:00
1st & 10 at own 15
Joseph Himon II run for 11 yds to the NU 26 Northwestern Penalty, Offensive Holding (-10 Yards) to the NU 11
13:00
1st & 14 at own 11
Ben Bryant sacked by Mo Omonode for a loss of 7 yards to the NU 4
13:00
2nd & 21 at own 4
Anthony Tyus III run for 3 yds to the NU 7
13:00
3rd & 18 at own 7
Ben Bryant sacked by Mo Omonode and Khordae Sydnor for a loss of 2 yards to the NU 5
10:37
4th & 20 at own 5
Hunter Renner punt for 26 yds
Purdue Turnover on downs, 9 plays
10:37
1st & 10 at opp 31
Ryan Browne run for 1 yd to the NU 30
10:37
2nd & 9 at opp 30
Ryan Browne pass complete to Garrett Miller for 11 yds to the NU 19 for a 1ST down
10:37
1st & 10 at opp 19
Ryan Browne run for 7 yds to the NU 12
10:37
2nd & 3 at opp 12
Ryan Browne run for 2 yds to the NU 10
10:37
3rd & 1 at opp 10
Ryan Browne run for 2 yds to the NU 8 for a 1ST down
7:04
1st & goal at opp 8
Ryan Browne run for 7 yds to the NU 1
7:04
2nd & goal at opp 1
Ryan Browne pass complete to Deion Burks for a loss of 1 yard to the NU 2
5:39
4th & goal at opp 1
Timeout Northwestern, clock 05:39
5:39
3rd & goal at opp 2
Tyrone Tracy Jr. run for 1 yd to the NU 1
5:34
4th & goal at opp 1
Tyrone Tracy Jr. run for no gain to the NU 1
Northwestern Punt, 4 plays
5:34
1st & 10 at own 1
Ben Bryant pass complete to Bryce Kirtz for 28 yds to the NU 29 for a 1ST down
5:34
1st & 10 at own 29
Cam Porter run for a loss of 1 yard to the NU 28
5:34
2nd & 11 at own 28
Cam Porter run for 4 yds to the NU 32
5:34
3rd & 7 at own 32
Ben Bryant run for 2 yds to the NU 34
2:51
4th & 5 at own 34
Hunter Renner punt for 35 yds
Purdue Fumble, 3 plays
2:51
1st & 10 at own 31
Tyrone Tracy Jr. run for 11 yds to the PUR 42 for a 1ST down
2:51
1st & 10 at own 42
Bennett Meredith pass complete to TJ Sheffield for 21 yds to the NU 37 for a 1ST down
1:55
1st & 10 at opp 37
run for a loss of 3 yards to the NU 40 fumbled, recovered by NU Richie Hagarty [NHSG] PUR rush up the middle for a loss of 3 yards, fumbled at NU40 , recovered by NU HAGARTY, Richie at the NU40, returned 0 yards to the NU40, End of Play, clock 01:55.
Northwestern Punt, 6 plays
1:55
1st & 10 at own 40
Ben Bryant pass complete to Bryce Kirtz for 4 yds to the NU 44
1:55
2nd & 6 at own 44
Ben Bryant run for 2 yds to the NU 46
1:55
3rd & 4 at own 46
Ben Bryant pass complete to Bryce Kirtz for 26 yds to the PUR 28 for a 1ST down
0:55
2nd & 18 at opp 36
Timeout Northwestern, clock 00:55
0:55
1st & 10 at opp 28
Ben Bryant sacked by Yanni Karlaftis for a loss of 8 yards to the PUR 36
0:55
2nd & 18 at opp 36
Ben Bryant pass incomplete
0:44
4th & 25 at opp 43
Timeout Purdue, clock 00:44
0:44
3rd & 18 at opp 36
Ben Bryant sacked by Khordae Sydnor for a loss of 7 yards to the PUR 43
0:35
4th & 25 at opp 43
Hunter Renner punt for 41 yds, downed at the PUR 2
Purdue Interception, 1 play
0:29
1st & 10 at own 2
Ryan Browne pass intercepted Garnett Hollis Jr. return for no gain to the PUR 20
Northwestern Missed FG, 4 plays
0:24
2nd & 5 at opp 15
Timeout Northwestern, clock 00:24
0:24
1st & 10 at opp 20
Ben Bryant pass complete to Cam Johnson for 5 yds to the PUR 15
0:24
2nd & 5 at opp 15
Ben Bryant sacked by Khordae Sydnor and Kydran Jenkins for a loss of 5 yards to the PUR 20
0:09
4th & 10 at opp 20
Timeout Purdue, clock 00:09
0:09
3rd & 10 at opp 20
Ben Bryant pass incomplete
0:05
4th & 10 at opp 20
Jack Olsen 38 yd FG MISSED
Purdue End of half, 1 play
0:00
1st & 10 at own 20
Tyrone Tracy Jr. run for 4 yds to the PUR 24
3rd quarter8 drives, then Northwestern 16, Purdue 7
Northwestern Punt, 3 plays
15:00
Ben Freehill kickoff for 65 yds for a touchback
15:00
1st & 10 at own 25
Cam Porter run for 4 yds to the NU 29
15:00
2nd & 6 at own 29
BRYANT, Ben pass to the left complete for 9 yards to HENNING, A.J. caught at the NU26 and advanced to the NU38 (JENKINS, Kydran). PENALTY NU Holding on JOHNSON, Cam enforced 10 yards from the NU29 to the NU19 [NHSG]. NO PLAY (replay the down).
15:00
2nd & 16 at own 19
Ben Bryant pass complete to A.J. Henning for 12 yds to the NU 31
15:00
3rd & 4 at own 31
Ben Bryant pass incomplete
13:22
4th & 4 at own 31
Hunter Renner punt for 32 yds, downed at the PUR 37
Purdue Punt, 3 plays
13:22
1st & 10 at own 37
Tyrone Tracy Jr. run for 5 yds to the PUR 42
13:22
2nd & 5 at own 42
Bennett Meredith pass complete to Garrett Miller for a loss of 2 yards to the PUR 40
13:22
3rd & 7 at own 40
Bennett Meredith run for 4 yds to the PUR 44
11:40
4th & 3 at own 44
Jack Ansell punt for 56 yds for a touchback
Northwestern Punt, 6 plays
11:40
1st & 10 at own 20
Ben Bryant pass incomplete
11:40
2nd & 10 at own 20
Cam Porter run for 2 yds to the NU 22
11:40
3rd & 8 at own 22
Ben Bryant pass complete to A.J. Henning for 10 yds to the NU 32 for a 1ST down
11:40
1st & 10 at own 32
Northwestern Penalty, False Start (-5 Yards) to the NU 27
11:40
1st & 15 at own 27
Cam Porter run for 3 yds to the NU 30
11:40
2nd & 12 at own 30
Ben Bryant pass complete to Cam Porter for 1 yd to the NU 31
11:40
3rd & 11 at own 31
Ben Bryant pass incomplete
9:05
4th & 11 at own 31
Hunter Renner punt for 48 yds , returns for no gain to the PUR 21
Northwestern Field goal, 4 plays
9:05
1st & 10 at opp 21
A.J. Henning run for 4 yds to the PUR 17
9:05
2nd & 6 at opp 17
Ben Bryant pass incomplete
9:05
3rd & 6 at opp 17
A.J. Henning run for 5 yds to the PUR 12
7:38
4th & 1 at opp 12
Jack Olsen 30 yd FG GOODNorthwestern 9, Purdue 0
Purdue Touchdown, 9 plays
7:31
Jack Olsen kickoff for 60 yds
7:31
1st & 10 at own 18
Ryan Browne run for 12 yds to the PUR 30 for a 1ST down
7:31
1st & 10 at own 30
Ryan Browne pass complete to Devin Mockobee for 3 yds to the PUR 33
7:31
2nd & 7 at own 33
Devin Mockobee run for 2 yds to the PUR 35
7:31
3rd & 5 at own 35
Ryan Browne pass complete to Devin Mockobee for 25 yds to the NU 40 for a 1ST down
7:31
1st & 10 at opp 40
Ryan Browne pass incomplete
7:31
2nd & 10 at opp 40
Ryan Browne run for 7 yds to the NU 33
7:31
3rd & 3 at opp 33
Devin Mockobee run for 14 yds to the NU 19 for a 1ST down
7:31
1st & 10 at opp 19
Ryan Browne run for a loss of 1 yard to the NU 20
3:59
2nd & 11 at opp 20
Tyrone Tracy Jr. run for 20 yds for a TD (Ben Freehill KICK)Northwestern 9, Purdue 7
Northwestern Touchdown, 4 plays
3:52
Ben Freehill kickoff for 65 yds , A.J. Henning return for 29 yds to the NU 29
3:52
1st & 10 at own 29
Joseph Himon II run for 4 yds to the NU 33
3:52
2nd & 6 at own 33
Ben Bryant pass complete to Joseph Himon II for 13 yds to the NU 46 for a 1ST down
3:52
1st & 10 at own 46
Joseph Himon II run for 2 yds to the NU 48
1:56
2nd & 8 at own 48
Ben Bryant pass complete to Cam Johnson for 52 yds for a TD (Jack Olsen KICK)Northwestern 16, Purdue 7
Purdue Punt, 3 plays
1:56
Jack Olsen kickoff for 63 yds
1:56
1st & 10 at own 35
Bennett Meredith sacked by Jaylen Pate for 0 yards to the PUR 35
1:56
2nd & 10 at own 35
Tyrone Tracy Jr. run for 5 yds to the PUR 40
1:56
3rd & 5 at own 40
Bennett Meredith pass incomplete
0:33
4th & 5 at own 40
Jack Ansell punt for 43 yds, fair catch by Bryce Kirtz at the NU 17
Northwestern Touchdown, 8 plays
0:00
1st & 10 at own 17
Cam Porter run for 4 yds to the NU 21
Q4 15:00
2nd & 6 at own 21
Ben Bryant pass incomplete
Q4 15:00
3rd & 6 at own 21
Ben Bryant pass complete to Cam Johnson for 31 yds to the PUR 48 for a 1ST down
Q4 15:00
1st & 10 at opp 48
Cam Porter run for 9 yds to the PUR 39
Q4 15:00
2nd & 1 at opp 39
Cam Porter run for 2 yds to the PUR 37 for a 1ST down
Q4 15:00
1st & 10 at opp 37
Cam Porter run for 3 yds to the PUR 34
Q4 15:00
2nd & 7 at opp 34
Ben Bryant pass incomplete
Q4 12:08
3rd & 7 at opp 34
Cam Porter run for 34 yds for a TD (Jack Olsen KICK)Northwestern 23, Purdue 7
Q4 12:08
PENALTY NU Unsportsmanlike Conduct on KIRTZ, Bryce PUR Unsportsmanlike Conduct on ROGERS JR., Derrick , Offsetting penalties. NO PLAY (replay the down).
4th quarter6 drives, then Northwestern 23, Purdue 15
Purdue Turnover on downs, 10 plays
12:01
Jack Olsen kickoff for 60 yds , Tyrone Tracy Jr. return for no gain to the PUR 17
12:01
1st & 10 at own 17
Ryan Browne run for 12 yds to the PUR 29 for a 1ST down
12:01
1st & 10 at own 29
Devin Mockobee run for 11 yds to the PUR 40 for a 1ST down
12:01
1st & 10 at own 40
Ryan Browne pass complete to Devin Mockobee for 16 yds to the NU 44 for a 1ST down
12:01
1st & 10 at opp 44
Ryan Browne run for 6 yds to the NU 38
12:01
2nd & 4 at opp 38
Devin Mockobee run for 2 yds to the NU 36
12:01
3rd & 2 at opp 36
Tyrone Tracy Jr. run for 6 yds to the NU 30 for a 1ST down
12:01
1st & 10 at opp 30
Ryan Browne pass complete to Tyrone Tracy Jr. for a loss of 2 yards to the NU 32
12:01
2nd & 12 at opp 32
Purdue Penalty, False Start (-5 Yards) to the NU 37
12:01
2nd & 17 at opp 37
Ryan Browne run for 3 yds to the NU 34
12:01
3rd & 14 at opp 34
Devin Mockobee run for 4 yds to the NU 30 Devin Mockobee fumbled, recovered by PUR [NHSG] MOCKOBEE, Devin rush to the left for a gain of 4 yards, MOCKOBEE, Devin fumbled at NU30 forced by FITZGERALD, Robert out of bounds to the NU30.
7:49
4th & 10 at opp 30
Ryan Browne pass incomplete
Northwestern Interception, 4 plays
7:49
1st & 10 at own 30
Anthony Tyus III run for 3 yds to the NU 33
7:49
2nd & 7 at own 33
Anthony Tyus III run for 2 yds to the NU 35
7:49
3rd & 5 at own 35
Purdue Penalty, Unsportsmanlike Conduct (Antonio Stevens) to the PUR 48 for a 1ST down
5:51
1st & 10 at opp 48
Ben Bryant pass intercepted Dillon Thieneman return for no gain to the PUR 23
Purdue Touchdown, 7 plays
5:51
1st & 10 at own 23
Ryan Browne run for 2 yds to the PUR 25
5:51
2nd & 8 at own 25
Ryan Browne pass complete to Deion Burks for 6 yds to the PUR 31
5:51
3rd & 2 at own 31
Tyrone Tracy Jr. run for 62 yds to the NU 7 for a 1ST down
5:51
1st & goal at opp 7
Ryan Browne run for 4 yds to the NU 3
5:51
2nd & goal at opp 3
Ryan Browne run for 1 yd to the NU 2
3:10
4th & goal at opp 2
Timeout Purdue, clock 03:10
3:10
3rd & goal at opp 2
Ryan Browne run for no gain to the NU 2
3:06
4th & goal at opp 2
Devin Mockobee run for 2 yds for a TD (D. Burks Run For Two-point Conversion)Northwestern 23, Purdue 15
Northwestern Punt, 3 plays
3:06
Ben Freehill kickoff for 65 yds for a touchback
3:02
2nd & 10 at own 25
Timeout Purdue, clock 03:02
3:02
1st & 10 at own 25
Cam Porter run for no gain to the NU 25
2:58
3rd & 6 at own 29
Timeout Purdue, clock 02:58
2:58
2nd & 10 at own 25
Cam Porter run for 4 yds to the NU 29
2:58
3rd & 6 at own 29
Cam Porter run for 3 yds to the NU 32
2:58
4th & 3 at own 32
Northwestern Penalty, False Start (Raymond Niro III) to the NU 27
1:59
4th & 8 at own 27
punt for 35 yds, downed at the PUR 38
Purdue Interception, 7 plays
1:59
1st & 10 at own 38
Ryan Browne pass complete to Garrett Miller for 4 yds to the PUR 42
1:59
2nd & 6 at own 42
Ryan Browne run for 6 yds to the PUR 48 for a 1ST down
1:59
1st & 10 at own 48
Ryan Browne pass complete to Arhmad Branch for 7 yds to the NU 45
1:59
2nd & 3 at opp 45
Ryan Browne run for 4 yds to the NU 41 for a 1ST down
1:59
2nd & 6 at opp 37
Ryan Browne pass complete to Tyrone Tracy Jr. for 3 yds to the NU 34
1:59
1st & 10 at opp 41
Ryan Browne pass complete to Garrett Miller for 4 yds to the NU 37
0:21
3rd & 3 at opp 34
Ryan Browne pass intercepted Xander Mueller return for 5 yds to the NU 30
Northwestern End of game, 1 play
0:00
1st & 10 at own 30
[NHSG] Kneel down by NU at NU28 (team loss of 2), clock 00:00.
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.