Henkien kätkemä

Juoni

Chihiro Ogino on 10-vuotias tyttö, joka eksyy vanhempiensa kanssa ilmeisen hylättyyn huvipuistoon. Chihiron vanhemmat ahmivat tyhjässä myyntikojussa olevia ruokia ja Chihiro vaeltaa omille teilleen. Eräs poika lähestyy häntä ja varoittaa, että heidän tulee lähteä pois ennen iltaa. Kun Chihiro juoksee takaisin vanhempiensa luo, hän saa huomata heidän muuttuneen sioiksi. Huvipuisto alkaa pimentyä ja täyttyä hirviöistä.
Chihiro saa tietää aiemmin tapaamaltaan pojalta, Hakulta, että hänen vanhempansa ovat jääneet loukkuun henkimaailmaan. Haku paljastaa myös, että hän on tuntenut Chihiron pienestä tytöstä asti. Chihiro huomaa olevansa ainoa ihminen fantasiahahmojen keskellä, mikä voi olla vaarallista. Haku tuo Chihiron erilaisten olijoitten kansoittamaan kylpylään, missä hän käskee tätä hakemaan töitä lämmittäjä Kamajilta. Lopulta Chihiro saa töitä kylpylää johtavalta noidalta Yubabalta, sillä ehdolla, että Chihiron nimi muutetaan Seniksi, joka on Chihiron japanilaisittain kirjoitetun etunimen ensimmäinen kirjain. Haku on kertonut Chihirolle, että Yubaba kontrolloi työntekijöitään ottamalla heidän nimensä. Chihiroa varoitetaan, että jos hän unohtaa oikean nimensä, hän jää loukkuun henkimaailmaan ikuisiksi ajoiksi.
Työskennellessään Linin apulaisena Sen sallii salaperäisen naamioituneen hengen astua kylpylään. Myöhemmin kylpylään saapuu myös valtava ”haisuhenki” eli Lemu-jumala. Sen kylvettää haisuhengen, joka paljastuukin varastelevaksi saastuneen joen hengeksi. Palkkioksi puhdistuksestaan henki lahjoittaa Senille oksetusyrtti-mykyn. 
Ennen pitkää Sen tajuaa, että Haku on tosiasiassa lentävä lohikäärme. Kun Haku loukkaantuu vakavasti lohikäärmehahmossaan shikigamien eli paperilintujen hyökkäyksessä, Yubaba määrää palvelijansa tappamaan hänet. Sen kuitenkin pelastaa Hakun. Yksi shikigami paljastuu Zenibaksi, Yubaban kaksossiskoksi. Zeniba ilmoittaa, että Haku varasti hänen kultaisen sinettinsä Yubaban määräyksestä, ja muuttaa valtavan vauvan eli Bohin hiireksi vaatien sinettiä takaisin. Haku ja Sen pakenevat ja putoavat Kamajin luo pannuhuoneeseen, missä Sen syöttää verta yskivälle Hakulle osan oksetemykyä. Haku yskii suustaan kultaisen sinetin sekä mustan kotilon, jonka Sen murskaa jalallaan. Kamaji antaa Senille junalipun Zeniban luo, jotta tämä voisi pyytää noitaa poistamaan sinetissä olevan kirouksen. Hiireksi muuttunut Boh tulee Senin mukaan.
Sillä välin Senin kylpylään päästämä naamioitunut henki paljastaa olevansa ”Kasvoton”-niminen hirviö. Hirviö nielaisee yhden Yubaban palvelijoista voidakseen puhua ja tarjoaa sitten henkilökunnalle kultaa vastineeksi suuresta määrästä ruokaa. Kasvoton jatkaa syömistä ja kasvaa sen myötä valtavasti, ja lopulta alkaa syödä myös useita kylpylän työntekijöitä. Myöhemmin Sen syöttää Kasvottomalle loput oksetemykystä, mikä saa hirviön oksentamaan kaiken syömänsä ulos. Kasvoton palautuu takaisin alkuperäiseen muotoonsa ja lähtee Senin mukana Zeniban luo.
Haku palaa takaisin tajuihinsa ja saa kuulla, että Sen on mennyt tapaamaan Zenibaa. Senin lähdöstä ja Kasvottoman aiheuttamista vahingoista raivostunut Yubaba määrää Senin vanhemmat tapettaviksi. Haku ilmestyy paikalle ja varoittaa Yubabaa, että tältä on kadonnut jotain arvokasta. Yubaba tajuaa, että Boh on hävinnyt, jolloin Haku kertoo hänelle, että Boh on Zeniban luona. Haku tekee Yubaban kanssa sopimuksen, jonka mukaan hän hakee Bohin takaisin, jos Yubaba puolestaan lupaa antaa Senin ja tämän vanhempien palata takaisin ihmisten maailmaan. Yubaba kuitenkin vaatii, että Senin on suoriuduttava sitä ennen vielä yhdestä kokeesta.
Sen, Boh ja Kasvoton saapuvat Zeniban talolle ja huomaavat Zeniban olevankin varsin ystävällinen vanha nainen. Zeniba kertoo, että Senin rakkaus mursi sinetin kirouksen ja että Senin murskaama kotilo oli kirous, jolla Yubaba oli orjuuttanut Hakun. Illan venyessä yöksi Kasvoton ja Boh kutovat Senille purppuranvärisen, kiiltävän hiusnauhan. Zeniba kehottaa Seniä pitämään sitä hiuksissaan, sillä se suojelisi häntä, koska se on hänen ystäviensä tekemä. Haku ilmestyy lohikäärmemuodossaan hakemaan Senin ja Bohin, kun taas Kasvoton jää Zeniban luo. Sen käsittää, että hän putosi kerran pikkutyttönä Kohaku-nimiseen jokeen, ja arvaa että Haku on sen saman joen henki, joka pelasti hänet tuolloin hukkumiselta. Senin oivalluksen myötä Haku vapautuu Yubaban loitsusta.
Haku palauttaa Bohin Yubaballe. Jälleen Chihiroksi muuttunut Sen joutuu viimeiseen kokeeseen, jossa hänen on etsittävä vanhempansa isosta sikalaumasta. Chihiro arvaa oikein, etteivät hänen vanhempansa ole sikojen joukossa. Haku saattaa Chihiron huvipuiston sisäänkäynnille ja lupaa, että he tapaavat toisensa vielä. Chihiro kohtaa jälleen vanhempansa, jotka eivät muista mitään koettelemuksistaan. Perhe lähtee yhdessä pois huvipuistosta. Huvipuiston suuaukolla, kun vanhemmat kummastelevat kuinka heidän autonsa vaikuttaa seisseen paikallaan päiväkausia, Chihiro katsoo vielä taakseen, jolloin aurinko valaisee hänen purppuranväristä hiusnauhaansa.