McKinley et son régiment entrèrent dans la vallée de Shenandoah à la reprise des hostilités au printemps 1864. L'unité de Crook fut rattachée à l'armée de la Shenandoah du major-général David Hunter et elle captura Lexington en Virginie le . L'armée continua d'avancer vers le sud en direction de Lynchburg tout en détruisant les voies ferrées lors de sa progression. Hunter croyait cependant que les troupes défendant Lynchburg étaient trop puissantes et la brigade retourna en Virginie-Occidentale. Néanmoins, le raid du général confédéré Jubal Anderson Early dans le Maryland fit que l'unité de McKinley fut rappelée dans le nord. Lors de la seconde bataille de Kernstown le , l'armée nordiste fut battue. Durant sa retraite dans le Maryland, l'armée fut réorganisée ; le major-général Philip Sheridan remplaça Hunter et McKinley, qui avait été promu capitaine après la bataille, fut transféré dans l'état-major du général Crook. En août, Early se repliait vers le sud de la vallée avec l'armée de Sheridan à ses trousses. L'armée nordiste repoussa un assaut confédéré de la bataille de Berryville au cours de laquelle la monture de McKinley fut tuée et durant la bataille d'Opequon, elle brisa les lignes adverses et continua sa progression vers le sud. La bataille de Fisher's Hill du fut une nouvelle victoire de l'Union et McKinley participa à la bataille de Cedar Creek du . Après des débuts prometteurs pour les Confédérés, McKinley aida à rallier les troupes et à renverser le cours de la bataille.