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.