On the 300th anniversary of Romanov rule, Czar Nicholas II hosts a grand ball at the royal palace. During this celebration, his mother, Dowager Empress Marie Feodorovna, (Angela Lansbury), gives her favorite granddaughter, 8-year-old Grand Duchess Anastasia a music box and a necklace reading "Together in Paris", which serves as its key. The ball is interrupted by the arrival of the megalomanic Grigori Rasputin, (Christopher Lloyd), a staretz, who sold his soul to gain the power of sorcery. Rasputin plans to gain his revenge through a curse to destroy the Romanov family that sparks the Russian Revolution. During the storming of the palace, a servant boy helps Anastasia and Marie to escape. Rasputin attempts to kill Anastasia himself, but falls through the ice in the river and drowns. While Anastasia is escaping, she drops her music box in the panic. Anastasia and Marie eventually reach a moving train, but only Marie is able to get on as Anastasia trips and hits her head on the station platform, forcing Marie to leave her behind.
Ten years later since the night of The Romanov Family Murder, Russia is now under Communist rule; Marie, now residing in Paris, has offered a monetary reward for anyone who can return Anastasia to her. Two Russian conmen living in Saint Petersburg, Dimitri and Vladimir, decide to find a young girl to pass off as Anastasia. Elsewhere, an amnesiac, 18 year old orphan girl named Anya (Meg Ryan) who owns the same necklace as Anastasia, has just left her orphanage and has decided to learn about her past, because she has no recollection of the first eight years of her life. Accompanied by Pooka, a stray dog, she heads to Saint Petersburg, and soon encounters Dimitri (John Cusack), and Vladimir (Kelsey Grammar), who recruit her as their "fake" Anastasia. During the trip to Paris, the two men teach Anya how to behave like Anastasia and Anya and Dimitri realize a mutual attraction. In Dimitri's baggage is Anastasia's music box. Anya recalls some small facts that she remembers from her past, though nobody realizes it.
Meanwhile, Rasputin is revealed to still be alive, but trapped in limbo as a living corpse: unable to die because Anastasia had not been killed. Bartok, his cowardly bat servant, unwittingly brings him his magical reliquary, thus restoring his old powers. Rasputin summons a legion of demons to kill Anya and complete his revenge, resulting in two failed attempts. This includes a narrow escape from a separated train that Anya, Vladmir, and Dimitri jump off to avoid falling to their deaths, and a nightmare aboard a ship en route to Paris from Germany that Anya sleepwalks through until Dimitri rescues her, alerted by Pooka. These failures make him realize he must kill her in person.
The trio eventually arrive in Paris and meet Sophie, Marie's lady-in-waiting and first cousin (Bernadette Peters), who is in charge of interviewing the Anastasia lookalikes. However, Marie, tired of heartbreak, has declared not to hold anymore interviews. Despite this, Sophie sees Anya as a favour to Vladimir; Anya plays her part well, but when Sophie asks how she escaped the palace, Anya dimly recalls a servant boy opening a secret door, surprising both Dimitri and Vladimir when this was one fact they failed to teach her. Dimitri later reveals to Vladimir that he was the servant boy in her memory, meaning that Anya is the real Anastasia and has found her home and family; nonetheless, he is saddened by this truth, because, although he loves her, he says that "princesses don't marry kitchen boys."
Sophie then arranges for Anya to encounter Marie at the Russian ballet. After the event, Dimitri attempts to introduce Anya, but the empress refuses to listen to him, having heard of Dimitri and his initial plans to con her. Anya eavesdrops on their argument and thus learns that she is a part of a con. Angered, she begins to leave and is confronted by Dimitri, who begs her to believe that his intentions have changed. She does not accept this, and leaves, intending to get out of their plot. Dimitri, determined to right the situation and reunite the two women, kidnaps Marie in her car and furiously drives back to the mansion where Anya is packing her things. Then he convinces the empress to meet with Anya by presenting her the lost music box. Upon meeting Anya at first, Marie remains guarded until the girl suddenly begins to remember personal childhood moments. As they sing the lullaby the music box plays, Marie finally realizes the truth, and the two reunite at long last.
Marie rewards Dimitri the money, plus her gratitude. Although Dimitri accepts her gratitude, he refuses the reward money revealing that he cared more about Anastasia than the reward and leaves. Marie eventually tells Anastasia of Dimitri's actions at the ball, making her realize her error. When Pooka suddenly bounds for the garden maze, Anastasia runs after him and is trapped. Rasputin finally reveals himself to her and tries to kill her on the Alexander Bridge over an icy Seine River. Dimitri returns to save her and in the ensuing fight, Anastasia manages to destroy Rasputin's reliquary by crushing it under her foot, causing him to disintegrate into dust, his soul awaiting eternal damnation with his hunger for revenge unfulfilled. Dimitri and Anastasia reconcile, sending a farewell letter to Marie and Sophie, telling them that they've eloped. The film ends with Anastasia and Dimitri sailing away on a boat with Pooka, before sharing a passionate kiss. Bartok, looking down at the spectacle, suddenly encounters a female bat and shares a kiss with her as well.