5 anos após o fim da Guerra Civil, o capitão Jefferson Kyle Kidd (Tom Hanks), um veterano de três guerras, agora se muda de cidade em cidade como um contador de histórias de não-ficção. No Texas, ele cruza com Johanna (Helena Zengel), uma menina de 10 anos que foi acolhida pelo povo Kiowa 6 anos antes. Johanna está sendo devolvida a seus tios contra sua vontade. Kidd concorda em entregar a criança e à medida que viajam, os dois enfrentarão desafios de forças humanas e naturais enquanto procuram um lugar que possam chamar de lar.