| 1 | Brad SwineyPlace 1 · John Battle | — | John Battle | 16:07.00 |
| 2 | Tyler YoungPlace 2 · Grayson Co | — | Grayson Co | 16:17.00 |
| 3 | Trevor DominyPlace 3 · Auburn | — | Auburn | 16:33.00 |
| 4 | Zane MoranPlace 4 · Floyd Co | — | Floyd Co | 17:17.00 |
| 5 | Jared DowningPlace 5 · Auburn | — | Auburn | 17:24.00 |
| 6 | Samuel HaynesPlace 6 · Carroll Co | — | Carroll Co | 17:36.00 |
| 7 | Joseph NielsonPlace 7 · Giles | — | Giles | 17:43.00 |
| 8 | Austin TolbertPlace 8 · George Wythe | — | George Wythe | 17:45.00 |
| 9 | Daniel HixPlace 9 · Galax | — | Galax | 17:46.00 |
| 10 | Caleb AmstutzPlace 10 · Roanoke Catholic | — | Roanoke Catholic | 17:48.00 |
| 11 | Calen HallinanPlace 11 · Auburn | — | Auburn | 17:50.00 |
| 12 | Malcolm StewartPlace 12 · Radford | — | Radford | 17:55.00 |
| 13 | Ian VestPlace 13 · Floyd Co | — | Floyd Co | 17:56.00 |
| 14 | Jacob CrossPlace 14 · Bland Co | — | Bland Co | 18:02.00 |
| 15 | Baxter MartinPlace 15 · John Battle | — | John Battle | 18:07.00 |
| 16 | Bailey HankinsPlace 16 · Grayson Co | — | Grayson Co | 18:08.00 |
| 17 | John EastonPlace 17 · Lebanon | — | Lebanon | 18:23.00 |
| 18 | Joe SanchezPlace 18 · Grayson Co | — | Grayson Co | 18:25.00 |
| 19 | Tyler BarnettPlace 19 · Carroll Co | — | Carroll Co | 18:31.00 |
| 20 | John MartinPlace 20 · Parry McCluer | — | Parry McCluer | 18:33.00 |
| 21 | Jack DrydenPlace 21 · Parry McCluer | — | Parry McCluer | 18:34.00 |
| 22 | Mark JohnstonPlace 22 · Radford | — | Radford | 18:40.00 |
| 23 | Skyler PaderickPlace 23 · James River | — | James River | 18:43.00 |
| 24 | Will FowlerPlace 24 · James River | — | James River | 18:45.00 |
| 25 | Jordan AkersPlace 25 · Floyd Co | — | Floyd Co | 18:50.00 |
| 26 | Zach CochramPlace 26 · Carroll Co | — | Carroll Co | 18:51.00 |
| 27 | Jacob WynnPlace 27 · Rural Retreat | — | Rural Retreat | 18:51.50 |
| 28 | Jonas JeppsonPlace 28 · Floyd Co | — | Floyd Co | 18:52.00 |
| 29 | Nolan HarrisPlace 29 · Auburn | — | Auburn | 18:54.00 |
| 30 | Christian BoydPlace 30 · Bland Co | — | Bland Co | 19:02.00 |
| 31 | Jacob HalePlace 31 · Grayson Co | — | Grayson Co | 19:06.00 |
| 32 | Michael FranklinPlace 32 · Graham | — | Graham | 19:09.00 |
| 33 | Andrew JordanPlace 33 · Galax | — | Galax | 19:11.00 |
| 34 | Ryan GerstemeierPlace 34 · Roanoke Catholic | — | Roanoke Catholic | 19:15.00 |
| 35 | Will DrydenPlace 35 · Parry McCluer | — | Parry McCluer | 19:16.00 |
| 36 | Brendan SnowPlace 36 · Roanoke Catholic | — | Roanoke Catholic | 19:17.00 |
| 37 | Matthew HortonPlace 37 · Galax | — | Galax | 19:17.50 |
| 38 | Bryson SutphinPlace 38 · Floyd Co | — | Floyd Co | 19:18.00 |
| 39 | Matt DuncanPlace 39 · Glenvar | — | Glenvar | 19:20.00 |
| 40 | Josh WilliamsPlace 40 · Giles | — | Giles | 19:26.00 |
| 41 | Josh WynnPlace 41 · Rural Retreat | — | Rural Retreat | 19:27.00 |
| 42 | Jacob MillerPlace 42 · John Battle | — | John Battle | 19:33.00 |
| 43 | Alex EatonPlace 43 · Glenvar | — | Glenvar | 19:39.00 |
| 44 | Branson WeeksPlace 44 · Auburn | — | Auburn | 19:42.00 |
| 45 | Noah StaplesPlace 45 · Floyd Co | — | Floyd Co | 19:46.00 |
| 46 | Garrett WrightPlace 46 · Graham | — | Graham | 19:59.00 |
| 47 | Dustin WadePlace 47 · Glenvar | — | Glenvar | 20:06.00 |
| 48 | Lukas MatthewsPlace 48 · Auburn | — | Auburn | 20:09.00 |
| 49 | Grayson HurstPlace 49 · Radford | — | Radford | 20:10.00 |
| 50 | Josh DowningPlace 50 · Radford | — | Radford | 20:17.00 |
| 51 | Michael WheelerPlace 51 · Radford | — | Radford | 20:18.00 |
| 52 | Hunter CarterPlace 52 · Auburn | — | Auburn | 20:18.50 |
| 53 | Nick CarterPlace 53 · Giles | — | Giles | 20:26.00 |
| 54 | Cameron BearPlace 54 · Rural Retreat | — | Rural Retreat | 20:32.00 |
| 55 | Nathan CraftPlace 55 · Parry McCluer | — | Parry McCluer | 20:33.00 |
| 56 | Carolos FloresPlace 56 · Grayson Co | — | Grayson Co | 20:34.00 |
| 57 | Brian HowellPlace 57 · Grayson Co | — | Grayson Co | 20:35.00 |
| 58 | Jesse HarrellPlace 58 · Radford | — | Radford | 20:47.00 |
| 59 | Chris BurnettePlace 59 · Carroll Co | — | Carroll Co | 20:48.00 |
| 60 | David HixPlace 60 · Galax | — | Galax | 20:49.00 |
| 61 | David HarmanPlace 61 · Bland Co | — | Bland Co | 20:50.00 |
| 62 | Cameron WaldenPlace 62 · John Battle | — | John Battle | 20:51.00 |
| 63 | Jonah MillerPlace 63 · Bland Co | — | Bland Co | 20:54.00 |
| 64 | Jared GrindePlace 64 · Roanoke Catholic | — | Roanoke Catholic | 20:59.00 |
| 65 | Nathan SikoraPlace 65 · John Battle | — | John Battle | 21:00.00 |
| 66 | Lucas GrahamPlace 66 · Graham | — | Graham | 21:03.00 |
| 67 | Evan AdamsPlace 67 · Carroll Co | — | Carroll Co | 21:04.00 |
| 68 | Ian DewPlace 68 · John Battle | — | John Battle | 21:16.00 |
| 69 | Noah PacePlace 69 · James River | — | James River | 21:21.00 |
| 70 | Tate HagaPlace 70 · Galax | — | Galax | 21:22.00 |
| 71 | Shane AllenPlace 71 · Glenvar | — | Glenvar | 21:31.00 |
| 72 | Caleb WarnerPlace 72 · Lebanon | — | Lebanon | 21:35.00 |
| 73 | Jacob MunseyPlace 73 · Lebanon | — | Lebanon | 21:38.00 |
| 74 | Trevor McLaughlinPlace 74 · Covington | — | Covington | 21:42.00 |
| 75 | Josh MurrayPlace 75 · Tazewell | — | Tazewell | 21:44.00 |
| 76 | Lorenzo HernandezPlace 76 · Eastmont | — | Eastmont | 21:46.00 |
| 77 | Riley MarshallPlace 77 · James River | — | James River | 21:51.00 |
| 78 | Ian NidayPlace 78 · Bland Co | — | Bland Co | 21:52.00 |
| 79 | Ethan JonesPlace 79 · Galax | — | Galax | 21:53.00 |
| 80 | Nick HarveyPlace 80 · Glenvar | — | Glenvar | 21:54.00 |
| 81 | Marshall TaylorPlace 81 · Rural Retreat | — | Rural Retreat | 21:55.00 |
| 82 | John EichelmanPlace 82 · Glenvar | — | Glenvar | 21:57.00 |
| 83 | Chris CockesPlace 83 · Glenvar | — | Glenvar | 22:05.00 |
| 84 | Val HornsbyPlace 84 · John Battle | — | John Battle | 22:09.00 |
| 85 | Noah ConleyPlace 85 · Grayson Co | — | Grayson Co | 22:16.00 |
| 86 | Dylan CriggerPlace 86 · Rural Retreat | — | Rural Retreat | 22:31.00 |
| 87 | Trey BoydPlace 87 · Rural Retreat | — | Rural Retreat | 22:33.00 |
| 88 | Holden BroughmanPlace 88 · Covington | — | Covington | 22:50.00 |
| 89 | Spencer CallawayPlace 89 · Roanoke Catholic | — | Roanoke Catholic | 22:53.00 |
| 90 | Henry LundyPlace 90 · Bland Co | — | Bland Co | 22:54.00 |
| 91 | Luke MintonPlace 91 · George Wythe | — | George Wythe | 22:56.00 |
| 92 | Conner SnowPlace 92 · Roanoke Catholic | — | Roanoke Catholic | 22:58.00 |
| 93 | Heath BranhamPlace 93 · Lebanon | — | Lebanon | 23:09.00 |
| 94 | David CummingsPlace 94 · James River | — | James River | 23:15.00 |
| 95 | Daniel BlevinsPlace 95 · Covington | — | Covington | 23:19.00 |
| 96 | Peter FantPlace 96 · Galax | — | Galax | 23:29.00 |
| 97 | Kaleb FranciscoPlace 97 · Eastmont | — | Eastmont | 23:30.00 |
| 98 | Jacob DavisPlace 98 · Rural Retreat | — | Rural Retreat | 23:34.00 |
| 99 | Blake ConnellPlace 99 · Roanoke Catholic | — | Roanoke Catholic | 23:43.00 |
| 100 | Austin BrownPlace 100 · Tazewell | — | Tazewell | 23:59.00 |
| 101 | Trentan BallPlace 101 · Lebanon | — | Lebanon | 24:27.00 |
| 102 | Cody RobertsonPlace 102 · Craig Co | — | Craig Co | 24:55.00 |
| 103 | Josh MyersPlace 103 · Carroll Co | — | Carroll Co | 24:56.00 |
| 104 | Davis LittlePlace 104 · George Wythe | — | George Wythe | 25:36.00 |
| 105 | Dominic MurphyPlace 105 · Eastmont | — | Eastmont | 25:38.00 |
| 106 | Jacob SawyersPlace 106 · Eastmont | — | Eastmont | 25:46.00 |
| 107 | David WalkerPlace 107 · Tazewell | — | Tazewell | 26:26.00 |
| 108 | Ian Pizano-FrancoPlace 108 · Eastmont | — | Eastmont | 26:54.00 |
| 109 | William AtkinsPlace 109 · Covington | — | Covington | 27:37.00 |
| 110 | Tyler BakerPlace 110 · Covington | — | Covington | 27:52.00 |
| 111 | Garrett BrinkleyPlace 111 · George Wythe | — | George Wythe | 27:54.00 |
| 112 | Caleb MorrisonPlace 112 · Covington | — | Covington | 28:12.00 |
| 113 | Ian MacNaughtonPlace 113 · Graham | — | Graham | 28:28.00 |
| 114 | Blake NaffPlace 114 · Lebanon | — | Lebanon | 29:12.00 |
| 115 | Michael LynchPlace 115 · Tazewell | — | Tazewell | 29:59.00 |
| 116 | Carter NecessaryPlace 116 · Tazewell | — | Tazewell | 31:04.00 |
| 117 | Ben OwenPlace 117 · Graham | — | Graham | 32:06.00 |
| 118 | J.D. WeeksPlace 118 · George Wythe | — | George Wythe | 32:09.00 |