The narrative unfolds with a flashback to a mystical tree known as the Source of Life, nestled within the vast and ancient Enchanted Forest. This revered tree sustains the entire forest and its residents with its powerful essence. One fateful day, a human, the proprietor of a sawmill, trespasses through the Dark Mountain and ventures into the Enchanted Forest, desperately pleading with Nazar Zadniprovskyi, the forest’s guardian, Lesh, for a drop of water from the Source of Life to save his ailing newborn daughter. Out of compassion, Lesh grants the request, but to his horror, the sawmill owner returns with an army of humans, intending to seize all the power for himself. This ignites a fierce confrontation, which, although won by Lesh, comes at a devastating cost to him and his kind. Henceforth, he enacts a law prohibiting any humans from entering the forest and barricades the passage through the Dark Mountain for all eternity.
Fast forward to present day, where we meet Mavka, a virtuous nymph, as she awakens from her winter slumber, bringing life back to the forest alongside her lively companion, Mykhailo Khoma as Hush, and her kitty-frog friend, Swampy. The forest inhabitants revel in the arrival of spring.
In a human village neighboring the Enchanted Forest, Kylina, the now grown daughter of the sawmill owner, reemerges. She presents herself to the villagers and proposes a lucrative job – one that entails traversing the Dark Mountain, but the villagers decline due to their fear of malevolent spirits lurking in the woods. Yet, a resourceful young musician named Artem Pyvovarov decides to accept the challenge in order to procure medicine for his sick uncle Oleh Mykhailiuta. Kylina tasks him with finding a unique leaf from the Enchanted Forest.
Amidst this backdrop, Lesh declares that a new guardian will be selected by the Supreme Spirits of Nature at the Heart of the Forest, as his own strength has waned over the years. However, Julia Sanina as Ondina casts shadows on Mavka’s integrity, deeming her unworthy of such a responsibility.
Mavka encounters Lukas and, despite her initial intent to frighten him away, is instantly captivated by his musical talent when he plays his sopilka. After learning of his noble mission, Mavka comes to trust him and offers a cure—accompanied by Hush’s reluctant assistance—on the condition he will depart after retrieving what he seeks. Upon their adventure together through the woods, feelings blossom between Mavka and Lukas.
Later that night, Lesh gathers the forest inhabitants to the tree, with Lukas disguised among them. The Spirits choose Mavka as the new guardian, though Ondina vehemently opposes this decision. Lukas stands up for Mavka, but when Ondina exposes his disguise, he is chased away. Mavka, wanting to help him, gives him a drop from the Source of Life to heal Uncle Leo, though he cannot fulfill his promise to play for her. Ondina, furious with Mavka for her decision, warns that Lukas will betray her.
When Lukas returns, Kylina expresses her mistrust, suspecting he might be deceiving her. She instructs her stylist, Serhii Prytula, Frol, to monitor him closely. Meanwhile, the cure Mavka gifted to Uncle Leo revitalizes him significantly. Suspecting Lukas’s success, Kylina prepares a plan for his venture back to the forest.
The next day, feeling a connection to Lukas, Mavka disguises herself and ventures to the village with Swampy to return Lukas’s lost sopilka. She seizes this opportunity to mend relations with the humans. At the village's spring festival, Lukas gifts her a vyshyvanka dress and a pendant etched with symbols of nature. Amidst the festivity and folk dancing, Lukas attempts to play for Mavka, but in doing so, he inadvertently reveals her true nature, shocking the villagers. Kylina seizes this moment to imprison Lukas in her mansion's basement, turning the villagers against Mavka, but Lesh intervenes to save her.
Lesh recounts the haunting tale of the bitter history between humans and the forest, revealing how he once wielded the Spark of Rage to vanquish the sawmill owner’s forces, at the expense of his own strength. Soon, Kylina pressures Lukas to mark the Source of Life’s location on her map, but he resists. Upon discovering Kylina has captured Mavka, he reluctantly acquiesces, only to realize that the Mavka before him is merely Frol in disguise. Kylina captures Lukas, putting his life in jeopardy, and riles the villagers to attack the forest.
Desperately, Mavka attempts to reason with Kylina, sharing the narrative of her father; however, Kylina reveals her true identity as the sawmill owner’s wife, orchestrating the previous battle driven by her yearning for unending beauty and immortality. In a twisted betrayal, she leads Mavka to mistrust Lukas, believing he sold the location for gold. This deception fuels Mavka’s anger, leading to a pitched battle between humans and forest beings. Embracing her grief, Mavka recklessly beseeches for the Spark of Rage from the One Who Sits in the Rock, ready to pay the ultimate price with her life. Sadly, the spark overwhelms her, rendering her devoid of empathy; she drives both humans and fellow forest dwellers into chaos, summoning a deadly firestorm against the village.
Meanwhile, Hush, Swampy, and Lukas' dog, Dot, liberate Lukas from drowning and rush to halt Mavka’s destruction. Acknowledging that Mavka is unreachable, Lukas plays his sopilka, igniting a chorus from both villagers and forest dwellers that penetrates Mavka’s despair, ultimately bringing her back from the brink. Mavka, healed from the trance, lies on the cusp of death as Lukas pleads for her return. In the void, Mavka discovers Lukas’ loyalty and learns that he never harbored ill intentions. The One Who Sits in the Rock acknowledges Mavka's role as a bridge between the two worlds but insists that, as a consequence of her bargain, she must remain in the Void for eternity. However, Mavka rejects such a fate, asserting that her heart holds an everlasting essence. Moved by her resolve, the Supreme Spirits revive her.
Mavka and Lukas share a heartfelt kiss, reaffirming their bond, as both humans and forest dwellers agree to forge a path towards peace. In the post-credits, an elderly Kylina discovers the Source of Life tree, thrilled at the prospect of rejuvenation; however, her joy is short-lived as she transforms into a baby moments after diving into the magical waters.