Chihiro, a ten-year-old girl, sulks in the back seat of her parents’ car. The family is on its way to a new home in a new town, and Chihiro doesn’t want to move. When her father gets lost taking a short cut, they discover the entrance to an abandoned theme park. The parents investigate and find a deserted stall piled with food. They start eating, and soon, they’re both pigging out. They try to make Chihiro eat, but she has a bad feeling about it and refuses the food. Chihiro wanders away by herself. While she explores, a boy appears and warns her to leave before dark. She runs back to the stall, only to find that her parents have turned into pigs. As night falls, shadowy spirits fill the park, and Chihiro starts becoming transparent. The boy appears again and coaxes her to eat food from the spirit world, which will keep her from disappearing. He then leads her to a busy bathhouse, negotiating her safely through a phalanx of spirits who aren’t happy about having a human among them. After getting her to safety, he gives her detailed instructions on how to get a job in the spirit world, which he says is the only way to survive. He says his name is Haku, and that he has known her since she was very small.

Chihiro first goes to the boiler man, Kamaji, for a job. Kamaji tells her that the enchanted soot creatures provide him with all the help he needs. As they talk, Chihiro rescues one of the soot creatures. A girl named Lin arrives and is shocked to discover the human everyone is looking for. Impressed with Chihiro’s tenacity and kindness, Kamaji lies and tells Lin that Chihiro is his granddaughter. He bribes Lin to take Chihiro to Yubaba, the witch who runs the bathhouse, to ask for a job. Yubaba initially refuses, but gives in when Chihiro persists. After Chihiro signs a contract for the job, Yubaba steals several of the characters that make up Chihiro’s name, renaming her Sen.

The next morning, Haku takes Sen to see her pig-parents, who no longer remember they were once human. Sen tries to remember her real name, and almost can’t. Haku warns Sen that he no longer remembers who he used to be and that if she forgets she’ll never be able to get home. Returning to the bathhouse, Sen looks back and sees a white dragon in the air. She knows the dragon is Haku.

On Sen’s first day of work at the bathhouse, she encounters a silent, white-faced spirit called No-Face, for whom she kindly leaves a door open. She also cleans a stink spirit, which turns out to be a polluted river spirit. The river spirit rewards her job well done with a magic herbal cake. No-Face becomes obsessed with getting Sen’s attention. The next day, Sen awakens to find everyone gone, and No-Face, who has gained a voice by eating a frog worker, is causing an uproar by creating gold out of thin air.

Outside of the bathhouse, Sen sees the white dragon, Haku, being attacked by birds. She opens a door for him and he flies through, followed by the birds, which are made of paper. In agony, Haku flies to Yubaba’s rooms on the upper level. Knowing he’ll bleed to death without help, Sen runs to find him. One of the paper birds hides on her back. As Sen runs through the bathhouse, No-Face sees her and tries to give her gold. She refuses it and runs away. Angered by her refusal, No-Face starts swallowing the staff and causing a panic. Arriving at Yubaba’s quarters, Sen finds Haku unconscious. The paper bird that has been hiding on Sen’s back seems to turn into Yubaba, but actually it’s her twin sister, Zeniba. Zeniba has followed Haku because he stole her gold seal. Disgusted by Boh, Yubaba’s giant baby, Zeniba turns him into a small mouse and turns Yubaba’s pet bird into a fly. Thrashing around, Haku smashes the paper bird, and Zeniba disappears.

Haku and Sen fall down a dark shaft into the boiler room. Kamaji tells Sen that Haku is bleeding from the inside, so Sen gives Haku part of the herbal cake the river spirit gave her. Haku vomits up the gold seal and a slug, which Sen squashes. Haku turns back to his boy form, but he is still very ill. Sen decides to go to Zeniba in an attempt to convince her to cure Haku. Kamaji gives Sen train tickets to get to Zeniba. On her way to the train, Sen confronts No-Face, who is still terrorizing the bathhouse. She gives him the rest of the herbal cake that she’s been saving for her parents. He begins to vomit and becomes angry at Sen, chasing her through the bathhouse. As he runs he vomits up all the people and things he’s eaten, getting smaller and smaller until he’s back to his normal size and meek demeanor. Sen, the Boh-mouse, the Yubaba-fly, and No-Face leave together for the train. As the group makes its way to Zeniba’s, Haku recovers. He leaves the group and goes back to Yubaba, promising to return Boh to her if Yubaba will send Sen and her parents back to their world.

When Sen arrives at Zeniba’s, she asks Zeniba to forgive Haku for stealing the seal and apologizes for killing the slug. Zeniba explains that Yubaba put the slug in Haku to control him, and that Sen has already healed Haku with her love. Haku arrives in his dragon form, and Sen climbs on his back so he can fly her, the Boh-mouse, and the Yubaba-fly back to the bathhouse. Sen remembers that when she was very young she fell in a river. Instead of allowing her to drown, the river carried her to safety. She had forgotten the river’s name, but now remembers that it was called the Kohaku River. Sen tells Haku she thinks he was the river. Upon hearing his true name, Kohaku River, Haku’s dragon scales fall away and he turns back into his boy shape. They arrive at the bathhouse, and Haku reminds Yubaba she promised to free Sen and her parents. Yubaba says Sen must first identify her parents from a group of pigs. Sen looks over the pigs and declares, correctly, that none of them are her parents. Her contract dissolves and she again becomes Chihiro. Free at last, Chihiro finds her parents, and, as they drive away, Chihiro assures her parents that she can probably handle a new home and school.