Chihiro y sus padres se están mudando a otra ciudad, un hecho que la niña encuentra molesto al no estar de acuerdo con el cambio y no duda en demostrarlo con su falta de ánimo y mal humor. Durante el trayecto, su padre decide tomar un atajo para ahorrar tiempo, pero solo consiguen internarse en un bosque y encontrarse frente a un estrecho y extraño túnel. Sus padres deciden bajar del coche para explorarlo aunque Chihiro se niega. Al otro lado del túnel, la familia descubre un pueblo aparentemente abandonado que su padre razona es uno de los tantos parques de atracciones que se inauguraron y quebraron rápidamente años atrás en Japón. Mientras la familia recorre el lugar buscando a alguien que los oriente encuentran puestos al aire libre donde se detienen a comer; sin embargo, al no encontrar quien los atienda, deciden tomar los alimentos servidos sin permiso, razonando que al tener dinero para pagar pueden hacerlo. Chihiro decide alejarse para continuar investigando y encuentra a un misterioso joven llamado Haku, quien le alerta que debe llevarse a sus padres y huir antes de que anochezca, lo que sucederá en pocos minutos.
Chihiro corre en busca de sus padres, aunque a medida que va oscureciendo la ciudad poco a poco va cobrando vida, los faroles se encienden y aparecen de la nada una gran variedad de espíritus. Al llegar al restaurante en el que había dejado a sus padres, Chihiro descubre que se han convertido en dos enormes cerdos; atemorizada, la niña decide huir del sitio, pero cuando intenta llegar al pequeño túnel descubre que la pradera junto a los locales se ha vuelto un océano inmenso por donde arriba un barco, del cual comienzan a desembarcar espíritus de diversas formas y tamaños.
Chihiro descubre que su cuerpo está desapareciendo; sin embargo, Haku aparece nuevamente y le da de comer alimentos de ese mundo, lo que la hace regresar a la normalidad. Tras esto, la lleva rápidamente y de manera clandestina a una casa de baños termales, en la cual debe conseguir un trabajo hasta que él pueda ayudarla a escapar. Haku envía a Chihiro con el calderero de la casa de baños, Kamaji, y le dice que le pida un trabajo a este. Kamaji rehúsa la petición de la niña, debido a que ya tiene a los susuwatari trabajando para él; sin embargo, le encomienda a Lin, una trabajadora de los baños, que envíe a Chihiro con la bruja Yubaba, la cruel dueña de la casa de baños.
Yubaba explica a Chihiro que en realidad el lugar es un balneario público al que van a sanar y descansar ocho millones de dioses (cifra metafórica del sintoísmo y folclore japonés para referirse al infinito en el mundo sobrenatural). Yubaba trata de echar a Chihiro, pero ella persiste y no cesa de pedirle un trabajo, recordando la advertencia de Haku de que todo aquel que no trabaje será convertido en un cerdo. La persistencia de Chihiro provoca que Yubaba finalmente le otorgue un puesto de trabajo, pero la bruja la obliga a firmar un contrato con el que le roba su nombre y rebautiza como Sen (千). Haku aparece, pero al recibir órdenes de Yubaba actúa como alguien frío y cruel, y aparentemente sin reconocer a Sen le ordena a Lin que sea su compañera y le enseñe a trabajar.
Al día siguiente, Sen se reencuentra con Haku, quien ahora se muestra amistoso y la lleva a los corrales a ver a sus padres. Allí, Sen encuentra entre sus viejas ropas una tarjeta de despedida dirigida a Chihiro por parte de sus amigos y se da cuenta de que casi había olvidado su propio nombre. Haku le advierte que Yubaba controla a la gente tomando sus nombres y que si llegaba a olvidar el suyo, tal como había sucedido con él, no podría salir jamás del mundo de los espíritus. Antes de regresar, Haku le da un alimento que ayuda a Chihiro a expresar su dolor interno. Esa noche, mientras trabaja, Sen permite la entrada a una criatura enmascarada y silenciosa llamada Sin Cara a la residencia asumiendo que se trata de un cliente.
Posteriormente, un «espíritu pestilente» arriba a los baños, a pesar de que hacen lo posible por evitar que se acerque. Yubaba se lo encarga a Sen, quien lo conduce hasta la tina que tiene asignada. Mientras lo baña, Sen descubre que en realidad es un poderoso y respetado dios de un río que ahora sufre por la contaminación, pero se las arregla para quitarle la suciedad, purificándolo con el baño y permitiéndole recuperar su aspecto de dragón. En agradecimiento por limpiarlo, el dios le otorga a Sen un pastelillo de hierbas y rocía el lugar con pepitas de oro como pago que Yubaba reclama para sí. Esa noche uno de los empleados revisa el lugar en busca de oro olvidado, encontrándose con Sin Cara, quien lo tienta creando oro, para luego devorarlo, esto hace que aumente de tamaño y se corrompa. Cuando llegan otros empleados demanda comida y comienza a dar propinas, engullendo en el proceso a otros dos trabajadores codiciosos, creciendo y corrompiéndose cada vez más.
Al día siguiente, Sen descubre en el cielo decenas de shikigamis de papel atacando a un dragón blanco, al que sin comprender por qué reconoce como Haku. Cuando un Haku gravemente herido se estrella en la oficina de Yubaba, Sen va rápidamente tras él sin darse cuenta de que un shikigami se había pegado a su espalda. Al llegar se esconde en la habitación de Boh, el gigantesco y malcriado bebé de Yubaba, y escucha como esta ordena que arrojen al moribundo Haku al vertedero y posteriormente se marcha. Sen intenta enfrentarse a los sirvientes de la bruja cuando el shikigami se transforma en Zeniba, la hermana gemela de Yubaba. Zeniba se jacta de que gracias a Sen pudo infiltrarse en la residencia de su hermana y transforma a Boh en un ratón, sosteniendo que así tendría un «poco de libertad», no sin antes crear un señuelo del bebé. También convierte al ave mascota de Yubaba en una mosca y le revela a Sen que Haku robó su sello mágico y como consecuencia una maldición estaba matándolo lentamente.
Haku destruye el shikigami de Zeniba golpeándolo con su cola y escapa por los conductos hasta caer a la sala de calderas con Sen, Boh y el ave de Yubaba. Sen, junto con la ayuda de Kamaji, obliga a Haku a comer la mitad del pastelillo para que sane sus heridas, lo que le hace vomitar el sello y una babosa negra, la cual Sen aplasta con su pie. Kamaji explica a Sen que años atrás Haku llegó pidiendo trabajo igual que ella, siendo un misterio quién era o de dónde venía. Con Haku inconsciente, Sen decide devolver el sello y pedir disculpas a Zeniba en nombre de éste, para ello Kamaji le da un par de billetes para el tren.
Antes de salir de la casa de baños, se enfrenta a Sin Cara, quien no solo se ha obsesionado con ella, sino que ahora es gigantesco y trata de tentarla con oro, pero Sen no muestra interés; en cambio decide darle el resto del pastelillo que había guardado para salvar a sus padres. El Sin Cara persigue a Sen fuera de la casa de baños, vomitando la corrupción que lo llena y a los trabajadores que ha devorado. Al llegar fuera del establecimiento ha vuelto a la normalidad y ha recuperado su personalidad silenciosa y tranquila, por lo que termina acompañando a Sen y Boh a ver a Zeniba. A su vez, Yubaba ordena que los padres de Sen sean asesinados, pero un Haku recuperado negocia la libertad de Sen y sus padres después de revelar que Boh ha desaparecido y ofrecerse para traerlo de vuelta. Yubaba acepta, pero bajo la condición de que si Sen fallaba en su prueba, el acuerdo se rompería.
Sen, el Sin Cara y Boh llegan al hogar de Zeniba. Allí descubren que en realidad la anciana es una mujer amorosa y amable, mientras que la maldición del sello había sido obra de Yubaba; al mismo tiempo, cuando Sen le pide que regrese a la normalidad a Boh y el ave, ella les informa que el hechizo hace tiempo había perdido su efecto, pero como se estaban divirtiendo ellos mismos rechazaban cambiar. Zeniba también le revela a Sen que Yubaba usaba la babosa para controlar a Haku pero su amor por él había roto la maldición.
Al amanecer Haku se llega en su forma de dragón y se lleva a Sen y Boh de regreso a la casa de baños, mientras que el Sin Cara se convierte en el ayudante de Zeniba. En medio del vuelo, Sen recuerda haber caído en su niñez en un río y haber sido llevada a la orilla por alguien a quien ahora reconoce como Haku, revelando así su verdadera identidad como el dios del río Kohaku. Haku finalmente puede recordar cuál era su verdadero nombre: Nigihayami Kohakunushi, recordando así cómo había perdido su hogar cuando los humanos secaron su río para construir sobre él.
Cuando llegan a la casa de baños Boh y el ave de Yubaba recuperan sus verdaderas formas y el bebé le explica a su madre que se divirtió mucho acompañando a Sen por lo que no desea que la lastime; Yubaba explica que las reglas exigen que solo los puede dejar ir si Sen pasa un acertijo que ella le impondrá: identificar a sus padres entre un grupo de cerdos con el fin de romper su hechizo. Después de que Sen responde, correctamente, que ninguno de los cerdos presentes eran sus padres, su contrato se termina y Yubaba finalmente acepta su derrota y los deja ir.
Haku lleva a Chihiro al lecho del río ahora seco y explica que ahora que él también ha recuperado su verdadero nombre y sus recuerdos Yubaba ya no podrá lastimarlo. Tras prometer encontrarse de nuevo Chihiro cruza el lecho del río y se encuentra con sus padres vueltos a la normalidad, quienes no parecen recordar nada. La película termina con Chihiro y sus padres alejándose en su vehículo.