COLD SPRING — The Willmar football team put together perhaps its top defensive effort of the season Friday night.

The Cardinals beat the Rocori Spartans 24-8 before a large crowd on an unseasonably mild night at the new Blattner Stadium.

Rocori was held to one touchdown with about two minutes remaining. The Spartans managed 211 yards in total offense, rushing for 117 and rushing for 94.

It was the fewest points Willmar has allowed except for a 65-0 win over Big Lake on Sept. 17 at Hodapp Field.

Connor Gregory had an exceptional game defensively for Willmar. The 6-foot-3, 205-pound sophomore linebacker had two quarterback sacks and a fumble recovery. The sacks came on back-to-back plays and helped the Cardinals maintain good field position.

Newsletter signup for email alerts

Willmar has now won four straight.

The Cardinals opened the scoring with 7:28 to go in the first quarter. Michael Price scored on a six-yard run. LaBlue Moo’s kick made it Willmar 7, Rocori 0.

That was the halftime score in which both teams struggled offensively. Rocori ran 30 plays for 74 yards. Willmar ran 21 plays for 77 yards.

The Cardinals opened things up in the third quarter, getting a 13-yard TD on a quarterback-keeper from Alex Schramm. The University of Minnesota-Duluth recruit led Wilmar with 88 yards rushing on 17 carries.

Moo then kicked a 21-yard field goal to put Willmar up 17-0 through three quarters.

It became 24-0 midway through the fourth quarter when Sam Raitz caught a 25-yard touchdown pass from Schramm and Moo followed with another PAT.

After two road wins, Willmar (5-1) returns home at 7 p.m. Friday to play Chisago Lakes at Hodapp Field.

Willmar 24, Rocori 8

Willmar (5-1) 7 0 10 7 — 24
Rocori (4-3) 0 0 0 8 — 8
Scoring Plays
W – Michael Price 6 run (LaBlue Moo kick)
W – Alex Schramm 13 run (Moo kick)
W– Moo 21 field goal
W – Sam Raitz 25 pass from Schramm (Moo kick)
R – Luke Van Erp 2 run (Gabe Johnson pass from Jack Spanier)

Willmar

First downs: 9 … Penalties: 5-40 … Rushing (Individual and team): Price 20-55, Schramm 13-88. 37-143 … Passing (Individual and team): Schramm 7-15-0 87... Receiving (Individual and team): Raitz 4-46, Connor Owens 1-29, Brandt Sunder 1-8, Price 1-5 … Interceptions: none … Fumble recoveries: Cullen Gregory 1 … Tackles (solo-assist): Mattix Swanson 7-5, Sunder 0-7, Jacob Flanigan 5-0, Zach Gadient 0-6 … QB sacks: Gregory 2

Rocori

First downs: 13 … Penalties: 4-40 … Rushing (Individual and team): Van Erp 17-75, Mason Dahl 7-26, Brady Blattner 4-9, Jack Spanier 5-4, Blake Tylutki 2-3. 35-117… Passing (Individual and team): Spanier 10-25-0 94 ... Receiving (Individual and team): Hunter Nistler 3-18, Adam Langer 3-55, Johnson 2-13, Acheson 1-11, Van Erp 1-(-3) … Interceptions: none … Fumble recoveries: none … Tackles (solo-assist): not available … QB sacks: none