Школьница Катя приходит в сельскую библиотеку, чтоб посоветоваться с уборщицей Акулиной Ивановной, о лечебных травах. Акулина Ивановна открывает девочке тайну: на самом деле она — Баба-Яга. Пятьсот лет назад она приютила красавицу — сироту Василису, которую выгнала злая мачеха. Василису похитил Кащей Бессмертный, чтобы жениться на ней. Девушка отказалась, и он заколдовал её страшным заклятием. Никто не знает где она, а ведь сегодня истекает срок, и девушка может погибнуть.
Катя предлагает спасти несчастную. В этом им должна помочь Василисина трава. Также она находит в библиотеке волшебную книгу. Акулина Ивановна взмахивает метлой, и Катя оказывается в лесу. Там она встречает Кикимору, дальнюю родственницу Акулины Ивановны. Кикимора сообщает, что Василиса томится в чулане дворца Кощея.
Попав во дворец Кощея, где уже девяносто лет не убирали, в пыли за зеркалом, Акулина Ивановна и Катя находят дверь. Акулина Ивановна хочет прочитать заклинание из волшебной книги, но оказывается, что Катя взяла не ту книгу.
Акулина Ивановна пытается найти книгу Кощея, но Кикимора вырвала оттуда страницы, чтоб сделать стрелы. Кикимора приносит смятые листы, Акулине Ивановне удаётся восстановить заклинание, и из двери выплывает сундук. Акулина Ивановна переживает за Василису: «Как солнце сядет — ей и конец».
Чтоб расколдовать Василису, Акулина Ивановна возвращается в школу за волшебной книгой, а Катя — на болото за волшебной травой. Кикимора тем временем стережёт сундук.
В библиотеку приходят учительница Надежда Филипповна и ученик Лисичкин. Мальчик случайно берёт с полки волшебную книгу, читает её, и у него неожиданно вырастают усы. Затем Надежда Филипповна читает книгу и исчезает.
Вошедшая в библиотеку Катя хочет забрать у Лисичкина книгу, но он читает её, и происходят различные чудеса. Наконец, Лисичкин зависает под потолком. Катя пытается расколдовать его и попасть на болото, но попадают в Дом пионеров.
Вися под потолком, ребята не могут спуститься вниз и роняют книгу. В это время в комнату входит Акулина Ивановна.
Кикимора сидит по дворце Кащея, и вдруг неожиданно появляется Надежда Филипповна, а за ней — Акулина Ивановна с ребятами. Кикимора сообщает, что проиграла сундук Лешему в карты.
Акулина Ивановна пытается забрать у Лешего сундук, но он не отдаёт. Ребята предлагают Лешему всё, что у них есть при себе, но он отказывается, и только когда Катя ласково уверяет его, что он добрый и хороший, Леший соглашается отдать сундук.
После колдовства Акулины Ивановны из сундука выходит красавица Василиса. После пятиста лет пребывания в заколдованном виде, она с перепугу принимает Лисичкина за Кощея, но потом узнаёт, что Кощей мёртв. На радостях все танцуют, а Надежда Филипповна не понимает, что происходит.
Утро следующего дня, в библиотеке обычный день: Надежда Филипповна раскладывает книги, Катя и Лисичкин возвращают книги, Акулина Ивановна убирает. Только Кикимора стучится в окно и машет Надежде Филипповне ручкой.