McKinleys regiment forflyttet seg til Shenandoah Valley og ble overflyttet til Shenandoah-hæren, som inntok Lexington i juni 1864. De gikk sørover mot Lynchburg og rev opp jernbanespor under fremrykningen. De fant imidlertid overmakten i Lynchburg for stor, og returnerte til Vest-Virginia. Før de rakk å gjøre et nytt forsøk, måtte de nordover for å stanse Jubal Anderson Earlys tropper i Maryland. Early overrasket dem ved Kernstown i juli, hvor McKinley ble utsatt for tung skyts, og unionshæren måtte gjøre retrett. McKinley ble forfremmet til kaptein og underordnet general George Crook. I august avverget de sørstatshærens angrep på Berryville, hvor McKinleys hest ble skutt under ham, og fortsatte til Opequon Creek, hvor de brøt fiendens forsyningslinjer. De seiret på nytt ved Fisher's Hill senere i september, og kom i kamp ved Cedar Creek i oktober. Unionshæren fikk et tilbakeslag, men McKinley bidro til å samle troppene og vinne slaget.