| 1 | C J MayPlace 1 · Aplington-Parkersburg | — | Aplington-Parkersburg | 16:58 |
| 2 | Isaac ConnollyPlace 2 · Western Dubuque | — | Western Dubuque | 17:09 |
| 3 | Nathan BettsPlace 3 · Western Dubuque | — | Western Dubuque | 17:20 |
| 4 | Danny HalvaPlace 4 · North Fayette Valley | — | North Fayette Valley | 17:25 |
| 5 | Austin DayPlace 5 · Waukon | — | Waukon | 17:33 |
| 6 | Curren MatthiasPlace 6 · Denver | — | Denver | 17:37 |
| 7 | Sam LorimerPlace 7 · Springville-C C | — | Springville-C C | 17:54 |
| 8 | Wyatt GatrostPlace 8 · Center Point-Urbana | — | Center Point-Urbana | 18:00 |
| 9 | Tyler O'NeillPlace 9 · Waukon | — | Waukon | 18:04 |
| 10 | Joe FreiburgerPlace 10 · Western Dubuque | — | Western Dubuque | 18:08 |
| 11 | Kevin OckenfelsPlace 11 · Center Point-Urbana | — | Center Point-Urbana | 18:09 |
| 12 | Nick PutzPlace 12 · Edgewood-Colesburg | — | Edgewood-Colesburg | 18:10 |
| 13 | Mitchell HayesPlace 13 · Starmont | — | Starmont | 18:16 |
| 14 | Evan BossPlace 14 · North Linn | — | North Linn | 18:16 |
| 15 | Carson WrightPlace 15 · Hudson | — | Hudson | 18:18 |
| 16 | Wyatt KellyPlace 16 · Hudson | — | Hudson | 18:25 |
| 17 | Marty KnepperPlace 17 · Cascade | — | Cascade | 18:27 |
| 18 | Ryan AdamsPlace 18 · Independence | — | Independence | 18:28 |
| 19 | Trevor HarenPlace 19 · Aplington-Parkersburg | — | Aplington-Parkersburg | 18:34 |
| 20 | Jared HefelPlace 20 · Western Dubuque | — | Western Dubuque | 18:38 |
| 21 | Jake NemmersPlace 21 · Columbus Catholic | — | Columbus Catholic | 18:39 |
| 22 | Cliff BaldwinPlace 22 · Independence | — | Independence | 18:40 |
| 23 | Adam FunkPlace 23 · Columbus Catholic | — | Columbus Catholic | 18:42 |
| 24 | Jacob WesselPlace 24 · Edgewood-Colesburg | — | Edgewood-Colesburg | 18:43 |
| 25 | Tyler JessenPlace 25 · Denver | — | Denver | 18:44 |
| 26 | Gabe NaumanPlace 26 · Western Dubuque | — | Western Dubuque | 18:45 |
| 27 | Easton CookPlace 27 · Clayton Ridge | — | Clayton Ridge | 18:45 |
| 28 | Holden CaloudPlace 28 · Hudson | — | Hudson | 18:54 |
| 29 | Brett HostertPlace 29 · Cascade | — | Cascade | 18:55 |
| 30 | Noah DierksPlace 30 · Center Point-Urbana | — | Center Point-Urbana | 18:56 |
| 31 | Seth BossPlace 31 · North Linn | — | North Linn | 18:59 |
| 32 | Conor OttingPlace 32 · Cascade | — | Cascade | 19:10 |
| 33 | Gannon CookPlace 33 · East Buchanan | — | East Buchanan | 19:11 |
| 34 | Alex OlesonPlace 34 · Hudson | — | Hudson | 19:12 |
| 35 | Caleb ChristiansenPlace 35 · Springville-C C | — | Springville-C C | 19:14 |
| 36 | Alex RichPlace 36 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 19:15 |
| 37 | Garrett WolfPlace 37 · Springville-C C | — | Springville-C C | 19:15 |
| 38 | Noah CrumptonPlace 38 · West Delaware | — | West Delaware | 19:16 |
| 39 | Jacob ClarkPlace 39 · Jesup | — | Jesup | 19:17 |
| 40 | Dakoda WolfPlace 40 · Jesup | — | Jesup | 19:17 |
| 41 | Dylan PetersenPlace 41 · Hudson | — | Hudson | 19:19 |
| 42 | Alex McCombsPlace 42 · Jesup | — | Jesup | 19:20 |
| 43 | Alex GebelPlace 43 · Denver | — | Denver | 19:20 |
| 44 | Ross WedewerPlace 44 · Western Dubuque | — | Western Dubuque | 19:22 |
| 45 | Thomas TreptauPlace 45 · Waukon | — | Waukon | 19:24 |
| 46 | Brady CarrollPlace 46 · West Delaware | — | West Delaware | 19:25 |
| 47 | Jed WysePlace 47 · Center Point-Urbana | — | Center Point-Urbana | 19:25 |
| 48 | Mason TylerPlace 48 · Aplington-Parkersburg | — | Aplington-Parkersburg | 19:26 |
| 49 | Luke PrangerPlace 49 · Columbus Catholic | — | Columbus Catholic | 19:29 |
| 50 | Kurt StabenowPlace 50 · Denver | — | Denver | 19:31 |
| 51 | Christian SchniedersPlace 51 · West Delaware | — | West Delaware | 19:32 |
| 52 | Hamza HusseinPlace 52 · Oelwein | — | Oelwein | 19:33 |
| 53 | Michael LuekenPlace 53 · Edgewood-Colesburg | — | Edgewood-Colesburg | 19:33 |
| 54 | Dylan GadberryPlace 54 · Western Dubuque | — | Western Dubuque | 19:35 |
| 55 | Russell ManternachPlace 55 · Starmont | — | Starmont | 19:35 |
| 56 | Christian FrenchPlace 56 · East Buchanan | — | East Buchanan | 19:36 |
| 57 | Tyler KroezePlace 57 · Denver | — | Denver | 19:36 |
| 58 | Max MolanderPlace 58 · Alburnett | — | Alburnett | 19:37 |
| 59 | Tanner ManningPlace 59 · Waukon | — | Waukon | 19:37 |
| 60 | Colin BeckPlace 60 · Denver | — | Denver | 19:40 |
| 61 | Nic MoorePlace 61 · Tripoli | — | Tripoli | 19:42 |
| 62 | Kameron KlingePlace 62 · Waukon | — | Waukon | 19:44 |
| 63 | Grant NeighborPlace 63 · Alburnett | — | Alburnett | 19:47 |
| 64 | Alec HirschPlace 64 · Oelwein | — | Oelwein | 19:48 |
| 65 | Caleb WittmanPlace 65 · Starmont | — | Starmont | 19:49 |
| 66 | Grant TruaxPlace 66 · Aplington-Parkersburg | — | Aplington-Parkersburg | 19:51 |
| 67 | Joey ZieserPlace 67 · Independence | — | Independence | 19:52 |
| 68 | Bradan HansenPlace 68 · Center Point-Urbana | — | Center Point-Urbana | 19:53 |
| 69 | Corey MackPlace 69 · Columbus Catholic | — | Columbus Catholic | 19:53 |
| 70 | Justin McDermottPlace 70 · Cascade | — | Cascade | 19:58 |
| 71 | Carson WilliePlace 71 · Starmont | — | Starmont | 19:59 |
| 72 | Alan JacksonPlace 72 · Hudson | — | Hudson | 20:00 |
| 73 | Kyle GilbertPlace 73 · Tripoli | — | Tripoli | 20:03 |
| 74 | Cole EngelPlace 74 · West Delaware | — | West Delaware | 20:05 |
| 75 | Dalton BantzPlace 75 · Independence | — | Independence | 20:07 |
| 76 | Tate TrenkampPlace 76 · Maquoketa Valley | — | Maquoketa Valley | 20:08 |
| 77 | Brady BarnerPlace 77 · Springville-C C | — | Springville-C C | 20:09 |
| 78 | Logan HeathPlace 78 · Springville-C C | — | Springville-C C | 20:09 |
| 79 | Austin PettlonPlace 79 · West Delaware | — | West Delaware | 20:10 |
| 80 | Bobby CaiPlace 80 · Cascade | — | Cascade | 20:13 |
| 81 | Tyler LyndePlace 81 · Starmont | — | Starmont | 20:14 |
| 82 | Brock BernsPlace 82 · Waukon | — | Waukon | 20:16 |
| 83 | Logan WilliamsPlace 83 · North Linn | — | North Linn | 20:18 |
| 84 | Nick MohlisPlace 84 · Denver | — | Denver | 20:20 |
| 85 | Dylan LoomerPlace 85 · Jesup | — | Jesup | 20:20 |
| 86 | Austin TibbottPlace 86 · Edgewood-Colesburg | — | Edgewood-Colesburg | 20:21 |
| 87 | Cole TurnerPlace 87 · Independence | — | Independence | 20:22 |
| 88 | Leeland SeysPlace 88 · Aplington-Parkersburg | — | Aplington-Parkersburg | 20:23 |
| 89 | Drew FunkPlace 89 · Clayton Ridge | — | Clayton Ridge | 20:25 |
| 90 | Jamison McKeehanPlace 90 · Beckman Catholic | — | Beckman Catholic | 20:26 |
| 91 | Riki MenningPlace 91 · Columbus Catholic | — | Columbus Catholic | 20:28 |
| 92 | Canyon RichardsonPlace 92 · Maquoketa Valley | — | Maquoketa Valley | 20:29 |
| 93 | Logan PetersonPlace 93 · Clayton Ridge | — | Clayton Ridge | 20:37 |
| 94 | Logan HovengaPlace 94 · Aplington-Parkersburg | — | Aplington-Parkersburg | 20:39 |
| 95 | Henry HahnPlace 95 · Starmont | — | Starmont | 20:41 |
| 96 | Keegan KolbetPlace 96 · West Delaware | — | West Delaware | 20:42 |
| 97 | Brock HendersonPlace 97 · North Linn | — | North Linn | 20:47 |
| 98 | Ben LittererPlace 98 · West Delaware | — | West Delaware | 20:53 |
| 99 | Jacob GardnerPlace 99 · Hudson | — | Hudson | 20:55 |
| 100 | Ashton HougPlace 100 · Mfl MarMac | — | Mfl MarMac | 20:56 |
| 101 | Levi BernsPlace 101 · Clayton Ridge | — | Clayton Ridge | 21:00 |
| 102 | Brendan WestemeierPlace 102 · North Linn | — | North Linn | 21:01 |
| 103 | Lee BeringerPlace 103 · Cascade | — | Cascade | 21:04 |
| 104 | Gable FoxPlace 104 · Don Bosco | — | Don Bosco | 21:09 |
| 105 | Payton HellmanPlace 105 · Union | — | Union | 21:13 |
| 106 | Matt AllerPlace 106 · Alburnett | — | Alburnett | 21:14 |
| 107 | Caleb O'HarePlace 107 · North Fayette Valley | — | North Fayette Valley | 21:15 |
| 108 | Easton HalversonPlace 108 · North Fayette Valley | — | North Fayette Valley | 21:18 |
| 109 | Colt GilsonPlace 109 · Starmont | — | Starmont | 21:21 |
| 110 | Alex MoorePlace 110 · Jesup | — | Jesup | 21:26 |
| 111 | Luke BeckerPlace 111 · Don Bosco | — | Don Bosco | 21:27 |
| 112 | Sean BangerPlace 112 · Wapsie Valley | — | Wapsie Valley | 21:27 |
| 113 | Bryant Meyer-KempPlace 113 · Maquoketa Valley | — | Maquoketa Valley | 21:28 |
| 114 | Logan HadsallPlace 114 · Center Point-Urbana | — | Center Point-Urbana | 21:34 |
| 115 | Evan WhalenPlace 115 · Kee High | — | Kee High | 21:43 |
| 116 | Brenden HoganPlace 116 · Maquoketa Valley | — | Maquoketa Valley | 21:45 |
| 117 | Brady PerryPlace 117 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 21:48 |
| 118 | Nick StasiPlace 118 · Oelwein | — | Oelwein | 21:50 |
| 119 | Nathan WadePlace 119 · Springville-C C | — | Springville-C C | 21:51 |
| 120 | Mitchell LilliePlace 120 · Alburnett | — | Alburnett | 21:52 |
| 121 | Will ReiterPlace 121 · Union | — | Union | 21:54 |
| 122 | Dylan TracyPlace 122 · Columbus Catholic | — | Columbus Catholic | 21:56 |
| 123 | Clayton SchupbachPlace 123 · North Fayette Valley | — | North Fayette Valley | 22:00 |
| 124 | Cody DurnanPlace 124 · North Fayette Valley | — | North Fayette Valley | 22:04 |
| 125 | Tucker ChorpeningPlace 125 · Independence | — | Independence | 22:04 |
| 126 | Eric ReckerPlace 126 · Beckman Catholic | — | Beckman Catholic | 22:10 |
| 127 | Randy SnyderPlace 127 · East Buchanan | — | East Buchanan | 22:12 |
| 128 | Spencer GullPlace 128 · Clayton Ridge | — | Clayton Ridge | 22:13 |
| 129 | Austin SmithPlace 129 · Springville-C C | — | Springville-C C | 22:16 |
| 130 | Cordell CannonPlace 130 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 22:18 |
| 131 | Matt SchmittPlace 131 · Beckman Catholic | — | Beckman Catholic | 22:18 |
| 132 | Shane DuffyPlace 132 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 22:19 |
| 133 | Ian SchwakePlace 133 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 22:22 |
| 134 | Brandon McClainPlace 134 · Oelwein | — | Oelwein | 22:23 |
| 135 | Josh DeLucaPlace 135 · North Fayette Valley | — | North Fayette Valley | 22:23 |
| 136 | Kyle WesselsPlace 136 · East Buchanan | — | East Buchanan | 22:25 |
| 137 | Carter BoggessPlace 137 · East Buchanan | — | East Buchanan | 22:26 |
| 138 | Thomas LehmannPlace 138 · Beckman Catholic | — | Beckman Catholic | 22:30 |
| 139 | Dylan ErdeltPlace 139 · Independence | — | Independence | 22:31 |
| 140 | Kordell DuCharnePlace 140 · Mfl MarMac | — | Mfl MarMac | 22:36 |
| 141 | Joe sinkPlace 141 · Columbus Catholic | — | Columbus Catholic | 22:40 |
| 142 | Bryon SellsPlace 142 · Union | — | Union | 22:41 |
| 143 | Jacob HammittPlace 143 · Wapsie Valley | — | Wapsie Valley | 22:41 |
| 144 | Carter BlockPlace 144 · Oelwein | — | Oelwein | 22:44 |
| 145 | Dalton JasterPlace 145 · Edgewood-Colesburg | — | Edgewood-Colesburg | 22:48 |
| 146 | Daniel KimballPlace 146 · Don Bosco | — | Don Bosco | 22:50 |
| 147 | Jack MooneyPlace 147 · Kee High | — | Kee High | 23:00 |
| 148 | Beau ClinePlace 148 · Clayton Ridge | — | Clayton Ridge | 23:04 |
| 149 | Cole MoodyPlace 149 · Union | — | Union | 23:08 |
| 150 | Kole HedemanPlace 150 · Union | — | Union | 23:10 |
| 151 | Andrew AskelandPlace 151 · Edgewood-Colesburg | — | Edgewood-Colesburg | 23:12 |
| 152 | Luke NeighborPlace 152 · Alburnett | — | Alburnett | 23:32 |
| 153 | Ethan KochPlace 153 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 23:34 |
| 154 | Jay GeickPlace 154 · Mfl MarMac | — | Mfl MarMac | 23:35 |
| 155 | Ryan WhalenPlace 155 · Kee High | — | Kee High | 23:40 |
| 156 | Sam KippPlace 156 · Sumner-Fredericksburg | — | Sumner-Fredericksburg | 24:09 |
| 157 | Bryan ArtegaPlace 157 · Union | — | Union | 24:29 |
| 158 | Lane CoylePlace 158 · Maquoketa Valley | — | Maquoketa Valley | 24:31 |
| 159 | Kirk DrewPlace 159 · Wapsie Valley | — | Wapsie Valley | 24:47 |
| 160 | Sean HuckerPlace 160 · Maquoketa Valley | — | Maquoketa Valley | 24:48 |
| 161 | Kade EdlerPlace 161 · Wapsie Valley | — | Wapsie Valley | 24:49 |
| 162 | Jon SeibertPlace 162 · Maquoketa Valley | — | Maquoketa Valley | 24:52 |
| 163 | Carl SchneiderPlace 163 · Beckman Catholic | — | Beckman Catholic | 25:11 |
| 164 | Austin ParmelyPlace 164 · Oelwein | — | Oelwein | 25:45 |
| 165 | Nolan OssmanPlace 165 · Alburnett | — | Alburnett | 25:51 |
| 166 | Kipp MillerPlace 166 · Alburnett | — | Alburnett | 25:52 |
| 167 | Luke OberbroecklingPlace 167 · Beckman Catholic | — | Beckman Catholic | 25:53 |
| 168 | Coltin BallPlace 168 · Mfl MarMac | — | Mfl MarMac | 25:59 |
| 169 | Jacob BernsPlace 169 · Kee High | — | Kee High | 26:22 |
| 170 | Spencer ColschPlace 170 · Kee High | — | Kee High | 26:25 |
| 171 | Joe DodgenPlace 171 · Mfl MarMac | — | Mfl MarMac | 28:16 |