Henry Shackleford er slave i Kansas i 1856. Han møter slavemotstanderen John Brown, som tror han er en jente, og frigjør ham umiddelbart. Brown tror Henry vil bringe ham flaks, og ønsker ham velkommen til sin brokete hær.
Onion og hans medslave Bob blir skilt fra Browns hær og forlater kampene i Kansas. Her støter de på rødskjorter, som er for slaveri og som fører dem til slavehandelsbyen Pikesville, Missouri.
Etter slaget i Pikesville er John Brown nå en av de mest ettersøkte mennene i Amerika. Han reiser nordover med Onion og søker tilflukt hos Frederick Douglass. Her lærer Onion mer om kampen for rettferdighet.
John og Onion fortsetter med pengeinnsamlingen, og går til Canada til fots. Samtidig blir Onion mer engasjert i saken enn han hadde trodd.
Onion og John Cook drar til Harper's Ferry for å forberede ankomsten til Brown og hæren hans. Ekte kjærlighet distraherer.
Planen om å ta kontroll over Harpers Ferry, nasjonens største våpenarsenal, blir endelig satt i verk. Onion blir sendt ut for å få tak i forsterkninger, men gjør en stor feil som truer operasjonens suksess.
John Brown og restene av hæren hans kjemper en siste kamp mot de føderale troppene i Harpers Ferry. Med John Brown tatt til fange og dømt til offentlig henrettelse, risikerer Onion sitt eget liv for å si farvel til ham.