Purcellville, Va. — Over the last 14 seasons, the Loudoun Valley and Woodgrove High School football teams have played each other 15 times. During that stretch, the Battle of Purcellville featured fourth-quarter comebacks, season-ending heartbreak, and bragging rights across western Loudoun. But despite there being eight one-score games during that stretch, one truth haunted the Loudoun Valley faithful: the Vikings were 0-15.
In order to remember the last time Loudoun Valley beat Woodgrove, you have to go back to the first time the teams ever played: October 1, 2010.
In that matchup, the Vikings hosted the Wolverines in front of around 4,000 fans at Leonard Stadium, scored five first-quarter touchdowns, and never looked back, besting the first-year Wolverines, 51-0.
In the 5,516 days since then, it had been all Woodgrove.
That is until November 7, when the Vikings again hosted the Wolverines in front of a packed stadium in Purcellville.
Led by a core group of returning skill players, including junior quarterback Zach Detweiler, senior receiver Mack Gaffney, and junior running back Ethan LaFollette, the Vikings weren’t going to let their 2025 opportunity “to be different” slip through their fingers.
Coming out of the half tied at 14-14, the Vikings used the next 13 minutes to take a commanding 35-14 lead over the Wolverines, never looking back en route to a 42-28 win over their longtime rivals.
“Starting last Thanksgiving, these kids have put in the work. Our theme this whole offseason was ‘to be different,’” Loudoun Valley head coach Dave Bishop said. “Anything that had happened against Woodgrove in the past was those teams. We wanted to be different. Our kids went out there and did just that.”
Loudoun Valley wanted to set the tone early, electing to receive the opening kickoff in hopes of jumping out to an early lead.
Woodgrove had other plans as on the fifth play of the game, sophomore defensive back Dylan Donnelley jumped a route and intercepted Detweiler to end the Vikings’ first drive.
Wanting to give their offense a clean slate, the Loudoun Valley defense forced a three-and-out, taking over on the Woodgrove 49 after a short punt.

In plus territory for the first time in the game, Detweiler quickly found his most trusted receiver in Gaffney for 6 yards. After a Woodgrove penalty, Detweiler again connected with Gaffney before LaFollette picked up two yards on the ground, setting up 3rd-and-4 from the 32.
Looking to make a splash, Detweiler dropped back and found Gaffney contested in the endzone for a 32-yard touchdown pass. Woodgrove senior linebacker Caleb Castaneda blocked the ensuing point after, and the Vikings led 6-0 midway through the first quarter.
“Our game plan was to get the ball first, score, and steal the momentum,” LaFollette said. “When we scored, we got a lot of confidence and knew we could win.”
The lead was short-lived, though, as the Wolverines responded less than 90 seconds later on a 12-yard touchdown run by sophomore running back Joey Ridolfi, giving Woodgrove its first and only lead of the game at 7-6.
Trailing by 1, the Viking offense retook the field as Detweiler connected with senior receiver Jolyon White, sophomore receiver Finn Bradley, and Gaffney to move into Woodgrove territory as the first quarter came to a close.
After a couple short runs, the Vikings faced 4th-and-7 from the Woodgrove 29, electing to trust their experience and go for it as Detweiler hit Gaffney with a 29-yard touchdown pass. Detweiler then connected with Gaffney on the 2-point conversion to retake the lead, 14-7.
“We knew Woodgrove was good, but we also knew they were young and that we had a veteran group,” Bishop said. “We knew we had to be able to balance our attack on the ground and through the air, and it showed through four quarters.”
That Loudoun Valley lead was also short-lived as the Wolverines again took less than 90 seconds to respond when freshman quarterback Colton Dabkowski tossed a screen pass to Ridolfi, who broke free for a 44-yard touchdown. The PAT by sophomore kicker Bryce Hart tied the game at 14-14, the score both teams would take into the half.
As the frigid rain started to fall at halftime, the Vikings knew they’d need to grab some momentum early as the Wolverines were set to receive the second half kickoff.
A 10-yard Ridolfi carry gave Woodgrove a quick first down, but the Loudoun Valley defense forced a punt on the next set of downs, which Gaffney returned back to the Woodgrove 34.
With the rain falling, the Vikings tried to establish the run, but the Woodgrove defense was relentless. Turning back to the air attack, Detweiler picked up a first down on a 14-yard completion to White. Three plays later, Detweiler hit junior receiver Hudson Bolton with a 15-yard touchdown pass as the Vikings retook the lead, 21-14.
On the ensuing drive, the Loudoun Valley defense continued to put pressure on the Wolverines as senior lineman Jonavon Ford met Ridolfi in the backfield for a loud 4-yard loss.

Another short Woodgrove punt set the Vikings up in plus territory, where Detweiler quickly connected with Gaffney for a 13-yard pickup and a first down. Gaffney and LaFollette then traded handoffs to pick up another first down, marching the Vikings down to the Woodgrove 5. Three plays later, LaFollette found himself in the endzone after a 2-yard touchdown run to increase the Loudoun Valley lead to 28-14.
Knowing that their rival wouldn’t go down without a fight, the Loudoun Valley defense continued to pour on the pressure, and it paid off yet again when junior defensive back James Ryun picked off Dabkowski to end the third quarter.
Once again starting deep in Woodgrove territory, Detweiler used his legs to scramble for a 15-yard touchdown, adding to the Vikings’ lead 35-14.
Woodgrove took advantage of a pair of defensive pass interference calls on their next series to set Ridolfi up for a 12-yard touchdown run midway through the fourth quarter, cutting the Loudoun Valley lead to 35-21.
Not wanting to let the Wolverines back into the game, the Vikings looked to manage the clock and add to their lead, leaning on LaFollette to do the heavy lifting. Four plays into the ensuing drive, LaFollette had rushed for 55 yards, capping the four-play drive with a 23-yard touchdown run.
“I feel our offseason program is one of the best in the state. Whether you’re playing one way or two ways, we have to be the strongest team, and we have to be the most conditioned team, and that’s something we can control,” Bishop said. “We can only go as far as we can with what God’s given us abilities-wise, but we can maximize that with our work ethic.”
Holding onto their last hope, Dabkowski hit junior receiver Cody Adams with an 8-yard touchdown pass with three minutes to play, but the Loudoun Valley cushion was too much to overcome as the Vikings earned their first win over the Wolverines in 15 years, 42-28.
Loudoun Valley (4-0, 9-1) secured the top seed in the Dulles District, earning them a first round bye and the No. 2 overall seed in the VHSL Region 4C tournament. Woodgrove (2-1, 6-4) heads into the tournament as the No. 3 seed and will host No. 6 Tuscarora in a region quarterfinal on November 14, in hopes of setting up a rematch with Loudoun Valley in a November 21 semifinal.
“We’re going to celebrate tonight, but we still have plenty of things to clean up,” Bishop said. “Woodgrove is a very good football team, they’re well coached, and if we see them again in two weeks, we know it’s going to be a battle.”
Katey Jackson captured 250+ photos at the game!
Scoring Plays
| Period | Time | Team | Play | Score |
| 1Q | 5:41 | Loudoun Valley | Zach Detweiler to Mack Gaffney 32-yard TD pass (PAT blocked) | 6-0 |
| 1Q | 4:12 | Woodgrove | Joey Ridolfi 12-yard TD run (Bryce Hart PAT) | 6-7 |
| 2Q | 10:31 | Loudoun Valley | Zach Detweiler to Mack Gaffney 29-yard TD pass (Detweiler to Gaffney 2pt) | 14-7 |
| 2Q | 9:04 | Woodgrove | Colton Dabkowski to Joey Ridolfi 44-yard TD pass (Bryce Hart PAT) | 14-14 |
| 3Q | 6:15 | Loudoun Valley | Zach Detweiler to Hudson Bolton 15-yard TD pass (Orestes Parada PAT) | 21-14 |
| 3Q | 0:47 | Loudoun Valley | Ethan LaFollette 2-yard TD run (Orestes Parada PAT) | 28-14 |
| 4Q | 10:57 | Loudoun Valley | Zach Detweiler 15-yard RD run (Orestes Parada PAT) | 35-14 |
| 4Q | 7:17 | Woodgrove | Joey Ridolfi 12-yard TD run (Bryce Hart PAT) | 35-21 |
| 4Q | 4:54 | Loudoun Valley | Ethan LaFollette 23-yard TD run (Orestes Parada PAT) | 42-21 |
| 4Q | 3:00 | Woodgrove | Colton Dabkowski to Cody Adams 8-yard TD pass (Bryce Hart PAT) | 42-28 |







