Antonio is happy that his parents have decided to take Ultima into their home and to provide for her. As he drifts off into sleep, he has a dream in which he floats over the hills of the llano to the village of Las Pasturas and toward the window of a lighted hut. There, a woman is in labor, and Antonio recognizes that he is witnessing his own birth. After the baby Antonio is born, his mother's brothers arrive and declare that he will be a Luna and perhaps become a priest. His father's brothers declare that he will continue their tradition of restless wandering on the llano. Each family wishes to dispose of the afterbirth according to their family traditions: the Lunas seek to bury it in the earth, while the vaqueros seek to burn it and scatter the ashes across the open plains. Ultima halts the ensuing disagreement by stating that she will bury the afterbirth herself. She declares that only she will know Antonio's destiny.
Antonio is anxious the next morning. He knows that he will soon begin school, and he is nervous at the thought of leaving his mother. He talks with his mother about his birth; she confirms that Ultima helped at her bedside, and she urges her children to treat Ultima with respect when the elderly woman arrives. She then strongly implies that she wants Antonio to become a priest. Troubled, Antonio decides to visit his friend Jasón but finds that he is not home. Antonio surmises that Jasón has defied his father's wishes by going to visit an Indian who lives alone in the hills. Antonio returns home to work in the garden.
Later that day, Gabriel arrives with Ultima. When Antonio shakes Ultima's hand, he senses the power of a whirlwind pass around him. He calls her by her given name instead of the customary salutation, Grande, and Ultima says that she knew when he was born that she would one day be close to him. Ultima's owl takes up residence near Antonio's home. Although owls are said to be a disguise taken by brujas, or witches, Antonio dreams that the owl carries the Virgin of Guadalupe and all the babes of Limbo to heaven.
Antonio is happy because he and Ultima quickly become friends. Ultima takes Antonio on walks to gather herbs and teaches him about their healing properties. Antonio says that he begins to hear the voice of the river. He senses that his family's peaceful isolation is about to end. Jasón's father, Chávez, comes to the Márez home shouting that Lupito, a local war veteran, shot Chávez's brother, the sheriff, dead. When Gabriel joins Chávez and the other men searching for Lupito, Antonio secretly follows them to the river. He sees Lupito, armed with a pistol, hidden in the water. Antonio makes a small noise, and Lupito looks down at him. But just then, the searchlights fall on Lupito, and he is confronted by his pursuers. Lupito runs off again into the reeds, out of sight of the men on the bridge. Gabriel and Narciso, the town drunk, try to explain to the mob that Lupito is shell-shocked because of the war, but after crying out something about Japanese soldiers, Lupito shoots his pistol into the air, drawing the fire of his pursuers. Lupito begs Antonio for his blessing as he dies.
Antonio runs home, sobbing and reciting the Act of Contrition, the last prayer that Catholics say before dying. When he realizes that Ultima's owl has been with him the whole time, he loses his fear. He fears that the river will be stained with blood forever. He thinks about the town, which he knows his father despises, and the llano, and he wonders why Lupito had to die. He remembers when his father built their house. Rather than choosing to build on a patch of fertile ground, Gabriel built a house on a barren place at the start of the llano. Antonio enters the house and Ultima meets him. She cleans him and puts him to bed. Ultima explains that it is not for them to judge whether Lupito or the men who killed him will go to hell. Antonio dreams of his three older brothers discussing their father's dream to build a castle in the hills. When Antonio states that they must gather around their father, they reply that he is supposed to fulfill María's dream and become a priest. When they try to cross the River of the Carp to build Gabriel's castle, a mournful voice calls Antonio's name. His brothers shrink in fear, saying that it is La Llorona, the "Weeping Woman," or Lupito asking for his blessing. Antonio declares that it is the presence of the river. He calms it so that his brothers can cross.
Antonio lies in bed and listens to his parents quarrel. Their frequent Sunday morning arguments about religion are a result of Gabriel's Saturday night drinking. María is a devout Catholic, but Gabriel's vaquero mindset causes him to distrust priests because to him they stand for order and civilization. Antonio knows that Gabriel's father once dragged a priest from church and beat him after the priest preached against something that Antonio's grandfather had done. At last Antonio goes downstairs, and María scolds Antonio for not being properly formal when greeting Ultima. Ultima requests that María not scold Antonio, as the night was hard on all the men in town. María protests that Antonio is still a baby. She says that she thinks it is a sin for boys to become men. Gabriel hotly declares that it is not a sin, only the way of the world, and María argues that life corrupts the innocence and purity that God bequeaths to children. She says bitterly that if Antonio becomes a priest, he will be spared from the corruption of life. Gabriel pours coffee for Ultima, and Antonio realizes with some surprise that Gabriel and Ultima are the only grown-ups he knows who eat or drink before taking Communion on Sundays.
Many women in town are dressed in mourning because they have lost sons and husbands in the war. Antonio notes that the war has indirectly claimed two more victims: Chávez's brother and Lupito. Antonio lingers near his mother, who smoothes his hair, and he feels soothed by her presence. He feels another jolt of anxiety when he realizes again that when he starts school soon, he will have to leave her. Antonio and Ultima discuss the events of the previous night. Antonio asks Ultima how his father can take Communion if he committed the sin of firing at Lupito. Ultima replies that she doesn't think Gabriel fired at Lupito, but she warns that no one should presume to decide whom God does and does not forgive. On the way to the church, the family passes a brothel situated in a ramshackle mansion that belongs to a woman named Rosie. María makes her children bow their heads as they pass, and Antonio realizes that Rosie is evil, but evil in a different way from a witch. Before mass, Antonio mingles with the other boys. As they play, they discuss the night's events. One of the boys brags that his father saw Lupito kill the sheriff. Antonio says nothing about Lupito's death.
Back at home, Antonio and Ultima dry the plants on the chicken shed. María tells them over dinner that, as Antonio had expected, it will soon be time to visit the Lunas to help with the harvest, a yearly ritual that keeps Antonio close to his grandfather and uncles. Antonio spends the rest of the afternoon playing at Jáson's house and then cuts wild alfalfa by the river to feed to the rabbits.
Every night, Antonio's family prays before María's statue of the Virgin of Guadalupe, a beautiful, two-foot-tall likeness of the Virgin in a blue gown. Antonio loves her because she always forgives; the Virgin is his favorite saint. He knows that she is the patron saint of his land. On the foot of the statue a little paint has chipped away so that the white plaster is visible, and Antonio thinks of the plaster as the Virgin's pure soul.
That night, Antonio hears Ultima's owl singing its mournful song outside his attic window. Antonio slips into sleep and has a dream in which the Virgin speaks to María. The Virgin promises María that his older brothers will return home from the war safely. When María asks her to make Antonio a priest, Antonio sees the Virgin wearing the clothing of mourning for him while standing on the moon. When he cries out in his sleep, Ultima comes to comfort him.
Andrew walks Antonio to school. The Vitamin Kid beats them in a race, calling Antonio a giant killer. At the end of the year, Antonio's teacher, Miss Maestas, promotes him from first to third grade. After school, Antonio goes fishing with Samuel, the Vitamin Kid's brother. Samuel asks if Antonio has ever fished for carp. Antonio replies that he hasn't because to do so is bad luck. Samuel tells Antonio a story that Jasón's Indian originally told. The story says that the gods sent the first people to the valley but forbade them to eat the carp. During a terrible drought, the people disobeyed the rule. One god pleaded for mercy, so the gods turned the people into carp instead of killing them. The god who saved the people grew sad, so he became a carp as well. However, he is larger than the other carp and golden in color. The story explains why eating carp is a sin. Samuel says that Cico, a local boy, will take Antonio to see the golden carp. When Antonio returns home, María is angry that he is so late. When she learns of his double promotion, however, she quickly forgets it.
Ultima says that she will need Antonio's help to cure Lucas. Antonio states that he will be proud to assist a curandera. As they approach El Puerto, they see the horned day moon, the moon of the Lunas, between two dark mesas at the end of the valley. When Ultima arrives in El Puerto, she forbids the Lunas to kill the coyotes that will surround Prudencio's home when she works her cure. When Ultima takes Antonio to confront Tenorio to warn him that his daughters must lift the curse or suffer the consequences, Tenorio makes the sign of the cross. Ultima declares that his daughters gathered Lucas's hair for their curse after he came to Tenorio for a haircut. Tenorio denies her accusations and calls her a bruja, or witch.
Ultima closes herself and Antonio in Lucas's room. After she forces a mixture of kerosene, water, and herbs down Lucas's throat, she asks Antonio if he is afraid, and Antonio says that he is not. She explains that the reason for his courage is that good is always stronger than evil. Antonio hears Ultima's owl attacking the coyotes surrounding Prudencio's home. Antonio enters a trance and finds that he cannot move or speak. When Lucas writhes in pain, Antonio feels pain as well. Ultima makes three clay dolls covered with wax and forces Lucas to take more medicine. Afterward, Antonio drifts to sleep. When he wakes, he vomits green bile. Ultima catches it in rags that she stores in a bag. Afterward, Antonio is able to keep down some atole, a gruel made of corn meal. Lucas screams in pain, vomiting a squirming mass of hair. When Lucas successfully eats a bowl of atole, Ultima declares the cure finished. The house fills with happy people, but some whisper the words bruja and hechicera (meaning "witch" or "sorceress"). Ultima burns the mass of hair and dirty linen in the grove where Lucas challenged Tenorio's daughters.
Antonio's group of friends invites Antonio and Cico to play ball. Ernie claims that there is a witch living in Antonio's house. Horse asks Antonio to do a magic trick for them. Angry at Ernie's taunting, Antonio agrees. He vomits the carrot juice on the ground, frightening his friends. Cico and Antonio run to a hidden pond where the huge, beautiful golden carp makes its appearance. Cico explains that the carp lives in the Hidden Lakes, a place with a strange power like the presence of the river, but stronger and hungrier. A mermaid lives there, trying to lure men to their deaths. Cico warns Antonio never to go there alone.
Cico explains that the golden carp prophesied that the weight of people's sin would cause the land to sink and be swallowed by the underground lake beneath it. When Antonio replies that it is not fair to the men who don't sin, Cico tells him that all men sin. The story saddens Antonio, and he feels burdened by the knowledge. When he returns home, he learns that Ultima already knows about the golden carp. She tells Antonio that he must find his own truths in adulthood. That night Antonio dreams about the conflicting beliefs he has encountered, as well as the conflict between his parents' wishes for him. Ultima tells Antonio and his parents that the water of the moon and the sea are the same water and that each family member is part of the same cycle.
To guard against witches, one man has thrust through his lips needles that have been blessed by a priest. Narciso declares that they can pin the needles over Gabriel's door in the sign of a cross. If Ultima is a witch, she cannot walk through the door. The mob agrees to abide by the test. Ultima's owl suddenly gouges out one of Tenorio's eyes. When everyone looks up, Ultima has passed through the door. The mob disperses, but Tenorio vows to kill Ultima. Antonio notices that the needles are no longer pinned above the door. He never finds out if they simply fell or if someone had broken the cross.
On the day that Antonio's class is scheduled to give a Christmas play at school, a fierce blizzard covers the ground with snow. Antonio and his rambunctious friends are the only students in their class who show up to school. Their teacher, Miss Violet, decides to have them perform the play in front of the rest of the school anyway. The boys practice all morning, but some of them are not happy at playing the girls' parts. The play becomes a hilarious farce.
Walking home morosely, Antonio sees Tenorio, the saloon-keeper, and Narciso, the town drunk, fighting in the street. Another of Tenorio's daughters is sick. Before stumbling away, Tenorio vows to kill Ultima. Narciso rushes off to find Andrew, one of Antonio's older brothers. Antonio follows Narciso to Rosie's house. To Antonio's horror, Narciso knocks on the door and asks for Andrew. Antonio wonders if the fact that Narciso is looking for Andrew at the brothel means that Andrew has already lost his innocence. When Andrew refuses to take Narciso seriously and warn his parents of Tenorio's threat, Narciso trudges into the blizzard to do it himself. Antonio stays out of sight and follows him.
Antonio hears a pistol shot ring out. He finds Tenorio and Narciso fighting under a juniper tree. When Antonio screams, Tenorio aims at him, but his pistol refuses to fire. After Tenorio flees, Antonio hears Narciso's last confession. He stumbles home to report what he has seen. Antonio falls into a deep fever and dreams that he begs God and the Virgin to forgive Andrew and Narciso. The Virgin replies that she will not forgive Narciso if Antonio does not ask her to forgive Tenorio as well. Antonio cries out for Tenorio to be punished, but God declares that he cannot be a god who is all-giving while taking vengeance on Tenorio at the same time. Antonio cries for God to forgive his own sins.
In his dream, Antonio sees the blood of Lupito and Narciso mix in the river. A mob gathers, calling for Ultima's blood. Antonio's brothers beg him to bless and forgive them. However, they turn into the Trementina sisters when Antonio approaches them. They cut Antonio's hair and mix it with a toad's entrails and a bat's blood. Afterward, they drink it, and Antonio dies despite his mother's prayers and Ultima's magic. Antonio is sentenced to purgatory because he died without taking the Eucharist. Lead by the sisters, a mob kills Ultima, Antonio's family, and Antonio's friends. Afterward, the mob catches and eats carp. A great hole opens in the ground, and water rises out of it, but the sinners take no heed. The sun turns red, and the sinners' skin falls off. When there is no one left alive in Guadalupe, the farmers from El Puerto come to gather the ashes of Antonio and his family. They bury the remains in the holy ground of their fields. The skies clear, and the golden carp swallows everything, good and evil. He ascends to the heavens to become a new sun, shining over a new world.