Set in the Texas backcountry, the novel begins in 1870, five years after the end of the Civil War. Captain Kidd is working as an itinerant news-reader—traveling between isolated towns and giving public readings of national newspapers—when he’s given an important task. His friend Britt Johnson, an African American freighter, has recently helped the U.S. military retrieve a young girl, Johanna, from the Kiowa Native American tribe, among whom she’s been captive for 10 years. He charges Captain Kidd to return the 10-year-old (who has already tried to escape her supposed rescuers twice) to her family outside San Antonio, several hundred miles away. Even though he considers himself too old for such an arduous journey, Captain Kidd agrees to go.
Johanna speaks no English and has no memory of her life before the Kiowa. She’s hostile and defensive towards the men taking care of her. The Captain employs a group of local prostitutes to wrestle her out of her Kiowa garments, rid her of lice, and force her into a dress. When they set out, Johanna is mute and seemingly indifferent to their destination. Captain Kidd doesn’t try to coax her into happiness, but he does succeed in teaching her a few words in English—including her own name, which she pronounces “Chohenna.”
As they drive, Captain Kidd mulls over his own life story. After growing up in Georgia, he volunteered as a teenager to fight in the War of 1812. After several people in his company are killed, he’s promoted to captain, earning the nickname that has followed him since. Eventually, he works as a runner, ferrying messages from camp to camp through dangerous territory. He loves this work and is good at it, calling it his “true calling.” When the war ends he apprentices for a printer and eventually moves to San Antonio to start his own printing shop. The town is primarily populated by Spanish settlers, one of whom, Maria Luisa, the Captain marries. They raise two daughters, Elizabeth and Olympia, in San Antonio.
When the Mexican-American War breaks out in the 1840s, the Captain manages communications for the American generals. Although he’s a noncombatant, he’s on the scene for several important and bloody battles. Sometime after the war, Maria Luisa dies and his daughters marry and start their own households. When the Civil War breaks out, both of their husbands fight for the Confederacy. Olympia’s husband, Mason, dies, while Elizabeth’s husband Emory loses an arm. Now they live in Georgia, but Captain Kidd hopes to reunite his family in San Antonio and reclaim some land that his deceased wife owned through her family.
Captain Kidd faces many challenges as he tries to help Johanna assimilate to the Anglo-American society in which she must now live. She’s frightened by the noise and motion in even small towns and doesn’t want to sleep indoors. In one town, Captain Kidd asks his friend Simon to watch over Johanna while he does a news reading. However, when Simon falls asleep Johanna runs to the river, where she sees a party of Kiowa riding horses on the other side. She calls out to them, begging for rescue, but they don’t respond and the Captain has to drag her away.
In Durand, Captain Kidd employs a local woman he knows, Mrs. Gannet, to help Johanna get used to sleeping in a hotel room. While Johanna is upset and scared by the transition, Mrs. Gannet soothes her with comforting songs. The Captain admires her affectionate and unflappable nature, and even considers pursuing her romantically. But his plans are interrupted when a sinister human trafficker named Almay offers to “buy” Johanna, presumably to force her into prostitution, and threatens to seize her on the road if the Captain doesn’t agree. Captain Kidd flees town with Johanna by night, but Almay and his two Native American henchmen catch up with them the next day. Captain Kidd is afraid that the younger men will outmatch him in the ensuing gunfight, but Johanna turns out to be a fierce and ingenious fighter, tipping boulders over onto their attackers and loading the gun with small coins when they run out of ammunition. The Captain kills Almay—but he refuses to let Johanna scalp the man in the Kiowa tradition.
While Captain Kidd has kept Johanna safe, the rest of the journey is far from easy. Many towns are completely anarchic, because the federal government has removed all Confederate officials without replacing them. Once, a group of cowboys demands a bribe in exchange for entrance to the town—but one of them, John Calley, repents his actions and later befriends the Captain at his reading. When the Captain reads of controversial issues, fistfights break out at his readings.
Meanwhile, Johanna struggles to adapt to her new life: once, she strips down to bath naked in the river, not knowing that this is considered inappropriate. A passing young woman scolds her harshly, causing Johanna to break down in tears. Another time, she steals several chickens from a local farm to eat for breakfast, not knowing that this will damage Captain Kidd’s reputation. However, she seems content to travel with him and doesn’t try to escape. Indeed, one night they glimpse a party of Kiowa raiders just outside their hidden campsite. Rather than calling out to join her tribe, Johanna remains quiet and watches them run into the distance. She also takes on responsibility for collecting money at the Captain’s reading, sternly ensuring that everyone pays their due.
As they draw nearer to San Antonio, Johanna grows more anxious. Whenever Captain Kidd tries to explain that she’s going to live with her aunt and uncle, she cries and asks to return to North Texas. When they finally reach Castroville, the town outside San Antonio where her remaining relatives live, the Captain takes Johanna to her parents’ graves. She remains unmoved, simply asking again if they can leave the town. The Captain doesn’t want to give her up, but he feels obligated to deliver her to her relatives.
Finally, Captain Kidd and Johanna arrive at the house of Wilhelm and Anna Leonberger, Johanna’s biological aunt and uncle. Rather than welcoming their long-lost niece, they scrutinize the oddly dressed and silent girl with suspicion and scorn. Both Wilhelm and Anna still grieve the deaths of Johanna’s parents and younger sister, who were killed brutally in a Kiowa raid. They can’t understand how Johanna has forgotten her early life and assimilated so completely into Kiowa culture. Moreover, they have no empathy for the many traumas she’s endured, harshly correcting her Kiowa behavior and telling Captain Kidd that she will have to quickly learn their ways. Captain Kidd sense that these people will not give Johanna the care she needs, but he doesn’t know what to do, so he leaves her there.
For the next couple days Captain Kidd stays in San Antonio, visiting his old print shop and scouting out potential places for his daughters to live if they ever return. One afternoon, he drives to Castroville to check on Johanna. When he arrives at dusk, he finds her struggling across the fields carrying heavy equipment for the horses; her hands and arms are covered in whip marks. Furious, the Captain bundles her into the wagon and rides away quickly, promising that no one will take her away again. Crying happy tears, Johanna calls him “Grandfather” in Kiowa and English.
For the next three years, Johanna and the Captain travel North Texas together. She helps with his news readings and he teaches her to read. She loves this itinerant lifestyle, but eventually Elizabeth and Olympia (the Captain’s daughters) return from Georgia and they all settle in San Antonio. Johanna seems subdued and a little depressed, yearning for her early life. But one day John Calley, the cowboy they met on their original journey, comes to visit the Captain. He’s immediately struck by Johanna’s beauty and begins courting her. Two years later, they get married and she joins him in his work as a cattle herder, a life of rough travel and time spent in the outdoors. Finally seeing his young charge settled into a life she can enjoy, the Captain spends his old age creating a Kiowa dictionary and dies comfortably in his home two years later.