The passage from this world to the fantasy kingdom of Stormhold is through a breach in a wall beside an English village. In the 1800s, a boy becomes a man when he ventures through the breach in pursuit of a fallen star, to prove his love for the village beauty. The star is no lump of rock, it's a maiden, Yvaine. Tristan, the youth, is not the only one looking for her: three witches, led by Lamia, want her heart to make them young; and, the sons of the dead king of Stormhold want her because she holds a ruby that will give one of them title to the throne. Assisting Tristan are his mother, the victim of a spell, and a cross-dressing pirate of the skies. Will Tristan win his true love?
In the 1800's, the clumsy teenager Tristan Thorn crosses the wall in the border of his town to the magic realm of Stormhold to bring a fallen star to his beloved Victoria, a spoiled girl that does not love him but has promised to marry him if he accomplishes his promise. In the fantasy kingdom, he meets the star Yvaine and imprisons her with a magic rope, promising to release her after meeting Victoria. Yvaine was hit by the magic ruby of the evil King of Stormhold that has promised his throne to the son that could find the stone. Meanwhile, three evil witches led by Lamia seek Yvaine to eat her heart and make them young again, and the two sons of the dead king also search Ivaine because she wears the necklace with the powerful ruby.
The tiny English village of Wall has a secret. Through a gap in the town's old stone wall lies the kingdom of Stormhold, a magical realm of spells, unicorns and witches. One day a boy named Tristan Thorn makes a bet with Victoria, the girl of his dreams, that he can bring her back a falling star that lands beyond the wall. So he journeys through the gap into the wall and into the other world, determined to bring back the fallen star in seven days and win Victoria's hand in marriage. To his surprise, the star in question is not a lump of rock but a plucky celestial princess named Yvaine, who is not at all pleased to be knocked out of the sky and subsequently kidnapped. And a fallen star, it seems, is quite a commodity in Stormhold. Soon Tristan and Yvaine are running from flying pirates, warring princes, and three wicked witches who want to cut Yvaine's heart out of her chest and eat it in order to restore their eternal youth. To win the bet, Tristan will have to hold his own in a dangerous game of swords and sorcery - but this new world has more surprises in store than he could ever have imagined...
In a countryside town bordering on a magical land, a young man makes a promise to his beloved that he'll retrieve a fallen star by venturing into the magical realm.
- Tristan Thorn (Charlie Cox) is the son of Dunstan Thorn and a captive princess called Una. The couple met only one night and fell in love instantly. Unfortunately, when Tristan was born, she was not allowed to keep him and instead sent him to live with his father. She put in his basket a "Babylon candle" and a letter to Tristan explaining everything.
The story then jumps forward eighteen years to Tristan as a young man, in love with the prettiest girl, Victoria (Sienna Miller) in a small English town (Wall Village). He is desperate to bring her a newly fallen star by her birthday as that is the only way she will agree to marry him. He uses the candle to fly to where the star landed, which is not in England but in a magical land called Stormhold. Tristan soon discovers that the star is not what he expected. The star is actually a beautiful, immortal and spirited woman named Yvaine (Claire Danes). Despite this, Tristan is determined to marry Victoria. Tristan uses a silver chain that his father obtained while trying to free the princess to take Yvaine to England, promising to use the last of the magic candle to take her back to the sky afterwards.
However, Tristan is not the only one seeking the star. Yvaine is in terrible danger because the surviving sons of the King (Peter O'Toole) are looking for her because only the jewel that she wears can secure the throne for one of them. Septimus, one of the princes, later finds out that a star's heart grants immortality. Septimus wants to devour her heart so that he can rule the kingdom forever. Additionally, the three witches known as "The Lilim" Mormo, Empusa and the eldest and the most powerful, Lamia (Michelle Pfeiffer) want her because they can recover their beauty and eternal youth by devouring the star's heart.
As Tristan sets out to protect Yvaine and bring her back to Victoria at the other side of the wall his journey brings incredible encounters with the pirate Captain Shakespeare (Robert de Niro) and a shady trader (Ricky Gervais) among others. Yvaine and Tristan fall in love - Yvaine confesses her feelings to Tristan after the witch, Ditchwater Sal, turns him into a mouse, Yvaine not realizing that he can still understand her.
After being changed back into a human Tristan is too woozy to continue the journey, and the two stop at an inn. Tristan tells Yvaine that he returns her love. While Yvaine sleeps, Tristan cuts a piece of her hair and goes back to England to tell Victoria that he no longer loves her. However when he tries to give Victoria the hair he finds that it has turned into stardust, or rock. He realizes that Yvaine cannot enter England and stay in human form and hurries back to the other side of the wall to find her.
Unfortunately, he arrives too late. Una, having seen Yvaine solemnly head towards the wall, races to warn her. Lamia, too, heads towards the wall. The princess stops Yvaine just in time, but Ditchwater Sal, who's been keeping the princess captive, attacks her and drags her back to the cart. Lamia confronts Sal and kills her, which sets Una free. However, Yvaine and the Princess Una are both captured by Lamia and taken back to The Lilim's castle, Yvaine to be killed and the princess to be a servant.
Tristan meets Septimus at the castle, and the two decide to attack the witches together. Septimus is about to attack Una when he sees that she is his sister, daughter of the King of Stormhold (the ghosts of the other six brothers are delighted to see her). Tristan, with the help of Septimus, manages to defeat Empusa, but Lamia kills Septimus.
Tristan is forced to fight the prince's animated corpse and witches alone. Tristan defeats Mormo and the animated corpse of Septimus, and then confronts Lamia in a fierce battle. During the battle, Lamia nearly kills Tristan, but Yvaine, now knowing that Tristan really loves her, is able to unleash a powerful wave of light that disintegrates Lamia.
Tristan picks up the jewel that Yvaine's been wearing. As it is restored to ruby red Tristan becomes the next king of the land of Stormhold, with Yvaine at his side as queen. Una, Tristan's mother, was the king's daughter, making Tristan the last male heir. It is stated that the two will live forever since Yvaine "gave" him her heart when she fell in love with him. After several generations pass, the two lovers use another Babylon candle, a wedding gift from Una, to return to the sky, where they become twin stars. And they still live happily ever after.