Henry "Onion" Shackleford (Jaden Smith) ist ein Sklavenjunge im Kansas des 19. Jahrhunderts. Als der legendäre Abolitionist John Brown (Liev Schreiber) auf seinem landesweiten Feldzug gegen die Sklaverei auf Henry trifft, hält er den androgynen Jungen aufgrund seiner Kleidung für ein junges Mädchen und nimmt ihn, nach einer gewalttätigen Auseinandersetzung mit dessen Herren, mit auf seine Reise. In den darauffolgenden Monaten muss Henry seine wahre Identität offenlegen, während er mit Browns Schar von Freiheitskämpfern quer durch die USA zieht. Er muss dabei jeder Menge tödlicher Gefahren ins Auge sehen und hilft schließlich sogar bei Browns historischen Überfall auf das Waffenlager in Harpers Ferry mit – einer der wichtigsten Auslöser Bürgerkriegs in Kansas und ganz Amerika.