I november stemte McKinley for første gang ved et presidentvalg, idet han stemte på den sittende republikaneren Abraham Lincoln. Deretter slo hæren leir for vinteren ved Kernstown. I februar 1865 ble Crook bortført av sørstatstropper. Dette skjedde under forberedelsene av våroffensiven, og etter en del omorganiseringer ble McKinley adjutant for brigadegeneral Samuel S. Carroll. General Robert E. Lees kapitulasjon til general Ulysses S. Grant avsluttet krigen noen dager senere. Rett før krigens slutt ble McKinley forfremmet til major. McKinley og Carroll ble overført til Winfield Scott Hancocks veterankorps i Washington, D.C. I juli 1865 ble veterankorpset fritatt fra tjeneste. Carroll og Hancock oppfordret McKinley til å søke seg til offiserskorpset i fredstid, men han avslo og reiste hjem til Ohio måneden etter.