The village of Wall is nestled against a stone wall in the English countryside. There’s a gap in the wall, which leads to the land of Faerie. Nobody is allowed to pass through the gap in the wall except for every nine years, when the Faerie Market comes to the meadow just beyond the wall. One year when the market comes to Wall, young Dunstan Thorn meets a beautiful young Faerie woman while trying to buy a gift for his love, Daisy Hempstock. Dunstan and the young woman, who is bound to her mistress’s caravan by a silver chain, have sex. In the following weeks after the market, Dunstan and Daisy’s parents arrange their marriage—and nine months after the market, someone pushes a baby in a basket through the gap in the wall. The baby’s name is Tristran Thorn.
Tristran grows up believing that Daisy is his mother. He doesn’t fully fit in in Wall, as when the wind blows from Faerie, he can sometimes see and hear things that nobody else can. By age 17, Tristran has fallen deeply in love with Victoria Forester. He walks her home one night and asks for a kiss and her hand in marriage. She refuses, but she says that if he can bring her the star she just saw fall in Faerie, she’ll give Tristran whatever he wants. Tristran agrees to the deal, and Dunstan walks his son to the gap in the wall and wishes him luck.
As Tristran begins his journey to the star, several others also take notice of the star. When the Eighty-First Lord of Stormhold dies, he tosses the Power of Stormhold—a topaz stone on a silver chain—at the star and ends up knocking the star out of the sky, causing it to fall. Whichever living son finds the Power of Stormhold (and kills the other two living brothers) will be the next lord of Stormhold. Septimus fairly quickly outsmarts and poisons his brother Tertius, and Septimus and Primus continue to travel separately toward the Power of Stormhold. Meanwhile, three old women known as the Lilim, or the witch-queen, want to capture the star and cut out her heart. This will return the women’s youth to them. One of the Lilim, who later assumes the name Morwanneg, earns the right to pursue the star. She uses magic to make herself young so she can complete the journey. As she travels, she runs into Madame Semele, who tricks Morwanneg into admitting that she’s looking for a star. To keep Madame Semele from pursuing the star herself, an enraged Morwanneg curses Madame Semele so that she will be unable to ever perceive the star. Morwanneg then travels to a mountain pass where she conjures an inn and waits for the star.
A little hairy man joins Tristran, and they travel together for a while. The man helps Tristran get appropriate clothes, gives him a silver chain with which to trap the star, and finally furnishes him with a “Babylon candle.” When lit, it helps Tristran cover miles with every step. Tristran quickly reaches the glade where the star fell. The star, it turns out, is a young woman who broke her leg falling to Earth. There’s a topaz stone on a silver chain tied around her waist. Tristran puts one end of the silver chain around the star’s wrist and the other around his own.
Tristran and the star begin their journey back to Wall. They come upon a unicorn and a lion fighting, and Tristran gets them to stop by thinking of another nursery rhyme and giving the lion his crown. The lion leaves, while the unicorn—who was sent by the moon, the star’s mother—travels with Tristran and the star. It agrees to carry the star and Tristran. Finally, they stop near a village, and Tristran unfastens the chain so he can go get supplies and return to the star. While he’s gone, however, the star runs away on the unicorn. Tristran receives help from a beech tree, who points him toward the road where Primus is traveling. Tristran and Primus travel together for several days.
The star comes upon Morwanneg’s inn and enjoys a hot bath. Soon after, Primus and Tristran reach the inn. The unicorn makes a fuss in the stable and reveals to Tristran that the ale someone brought him is poisoned. It and Tristran rush inside. Morwanneg kills Primus, while the unicorn kills Morwanneg’s minions. Morwanneg kills the unicorn—but Tristran manages to use the last of his Babylon candle to get himself and the star out of the inn. They find themselves stranded on a cloud, where the star introduces herself as Yvaine. A flying ship picks them up and takes them closer to Wall. They continue their journey to Wall on foot, and they eventually come upon Madame Semele. Tristran makes a deal with her, and she agrees to transport Tristran to Wall safely—so she turns him into a dormouse for the duration of the journey. She can’t see Yvaine because of Morwanneg’s curse, but Yvaine sleeps in the caravan by day and spends time with Madame Semele’s chained bird by night.
Septimus is now the last living brother and thus will be the next lord of Stormhold, but he must avenge Primus’s death before he can assume power. He finds Morwanneg’s cottage and tries to burn it down with her inside, but Morwanneg’s snake bracelet bites Septimus, killing him. Morwanneg is living in this particular spot so she can vet all travelers heading for Wall, and when Madame Semele’s caravan passes through, Madame Semele tells her—she believes truthfully—that she doesn’t have the star with her.
Madame Semele’s caravan reaches the meadow near Wall, and she turns Tristran back into a human. He passes through the gap in the wall on the morning of the Faerie market, and his sister Louisa takes him to see Victoria. Victoria reveals that when she refused Tristran’s kiss, she did so because she’d just gotten engaged to Mr. Monday—but she promised herself to Tristran, and she intends to keep her promise. Tristran reminds her that she promised him whatever he wanted, and he’d like her to marry Mr. Monday and be happy. He then visits home, and Dunstan shares the truth about the circumstances surrounding Tristran’s birth. Tristran finally returns to the market and finds Yvaine—who has just learned from Victoria herself that Tristran and Victoria aren’t going to marry each other. Tristran and Yvaine profess their love for each other.
Morwanneg, now an ancient-looking old woman, finds Yvaine at the market. She reveals that she was after Yvaine’s heart, but she wasn’t able to sense it after the fight at the inn. Yvaine suggests that this is because, following that event, she gave her heart to Tristran.
Meanwhile, Madame Semele’s enslaved young woman has noticed her chain dissolving, and finally, it does, freeing her from her enslavement. She reveals that she’s Lady Una of Stormhold—and Tristran’s mother. She encourages Yvaine to give Tristran the Power of Stormhold: Tristran will be the eighty-second Lord of Stormhold. However, Tristran insists that he and Yvaine want to travel before he assumes his duties. They spend eight years traveling Faerie before finally returning to Stormhold. Tristran’s reign is long and peaceful, and when he dies, Yvaine takes over as the Lady of Stormhold. She continues to stare at the stars whenever she can.