When Antonio Márez is almost seven years old, the old healer Ultima comes to stay with him and his family in their small house in Guadalupe, New Mexico. The family has taken in Ultima out of a respect for her healing powers, her knowledge of plant lore, and her long use of folk magic in service of the community. Though they have great respect for Ultima’s spirituality, the family, especially Antonio’s mother, is devoutly Catholic. Antonio’s father, Gabriel, is a former vaquero, or cowboy, who wandered the llano, the great plains of New Mexico. Antonio’s mother, María, is the daughter of farmers. Antonio’s parents now argue about their young son’s future; Gabriel hopes he will become a vaquero on the llano, and María hopes he will become a priest. When he was born, Ultima served as his midwife and buried his afterbirth. As a result, it is now thought that she alone knows what lies in Antonio’s future.
Antonio spends a happy time with Ultima, learning about plants and trees and helping her gather herbs on the llano. One night, his innocence is threatened when he witnesses the death of Lupito, a soldier who recently returned from World War II. Lupito is shot to death by a mob after he kills the sheriff in a moment of post-traumatic delirium. After seeing Lupito’s death, Antonio begins to wonder about sin, death, and hell. Antonio walks to church with Ultima the next morning, and she tells him that each person must make his or her own moral choices, must choose a set of values to use to understand the world.
That fall, after helping his mother’s brothers, the Lunas, with their harvest, Antonio begins school. María presses Ultima to reveal Antonio’s destiny, and she replies sadly that he will be a man of learning. The war ends, and Antonio’s brothers return home. Gabriel is overjoyed because he hopes the return of his older sons means that the family will at last be able to move to California, as he has longed to do. But the brothers are surly, restless, and traumatized by the war. Before long, they each leave home to pursue independent lives. Antonio struggles to understand the conflict between his father and his brothers, but like so many of the moral questions that trouble him, it is too complicated for him to grasp. His mother tells him that he will understand when he begins to take Communion, and he begins to look forward anxiously to the day he will be old enough to do so.
Antonio’s friend Samuel takes him fishing and tells him the story of the golden carp, a river god who looks out for mankind. Antonio is moved by the story, but he does not know how to reconcile it with his Catholic beliefs. His beliefs are challenged again when his uncle Lucas is cursed by the satanic Trementina sisters. The priest is unable to cure him, but Ultima, with Antonio’s help, is able to banish the curse. Antonio realizes that there is no way to explain Ultima’s powers within the worldview of the Catholic church.
Antonio goes to visit the garden of Narciso, the town drunk. Afterward, they go to see the golden carp. Antonio’s friend Cico tells him that only true believers can see the carp. Cico says that if the people cannot stop sinning, the carp will flood the land to rid it of humanity’s evil. Antonio wishes sadly that there were a god of forgiveness. He idolizes the Virgin Mary because of the ideal of forgiveness that she represents.
One afternoon, Antonio witnesses an altercation between Narciso and Tenorio, the father of the wicked sisters who cursed Lucas. In a raging blizzard, Tenorio, who blames Ultima for the death of one of his daughters, goes out to kill the old woman. Narciso tries to stop him, and in front of Antonio, Tenorio shoots and kills Narciso. Antonio comes down with a high fever and has frightening and symbolic dreams.
At last, the time comes for Antonio to begin preparing for his Communion. But he seems to be surrounded by dissenting voices—that of his father, who seems to worship the earth more than he does the Christian God, and that of his friend Florence, who incisively points out the failings in Catholic thought. When Antonio finally takes Communion on Easter Sunday, he feels no different than he felt before. He still does not understand how there could be evil in the world or what kind of forgiveness is possible in a world of sin.
Ultima continues to teach Antonio lessons about moral independence and goodness. He goes with her to dispel the ghosts in a haunted house, and they discover that Tenorio has caused the haunting in order to take revenge on the man who owns the house. Ultima drives away the ghosts, but when the second of Tenorio’s daughters falls ill, he begins to regard Ultima with even more hatred. Not long after that, Florence drowns while swimming in the river. Ultima sends Antonio to stay with his uncles to recover from the shock, and he spends a happy summer with them, learning how to tend a farm. On the journey there, Antonio and Gabriel talk about some of the questions that have been bothering Antonio, and Gabriel tells him that he will end the conflict between the Márezes and the Lunas and let Antonio choose his own destiny.
As Antonio makes his way from his uncles’ fields to his grandfather’s house one day toward the end of the summer, a murderous Tenorio chases after him. Antonio escapes, but Tenorio shoots Ultima’s owl. When the owl dies, Ultima is doomed to die as well because the owl is her spiritual familiar, or guardian. Antonio sits with her at her bedside and buries the owl as she requests after she dies.