A man kills several of his business partners and his estranged ex-wife, then runs away with his children: a young Victoria and baby Lilly. After speeding on a remote, snowy road, he crashes into the woods and takes the children to an abandoned cabin he wanders upon nearby. Realizing the mistakes he has made, he prepares to commit murder suicide but at the last moment is killed by a strange figure in the cabin. Victoria looks at the figure but only sees a blur as her glasses were broken in the crash.
Five years later, their Uncle Lucas (Nikolaj Coster-Waldau) and his girlfriend Annabel (Jessica Chastain) have been madly searching for his brother and nieces using the inheritance of his brother. The searchers stumble upon the crashed car and find the two children in the cabin. In this time, they have become completely like animals, with Victoria physically shielding Lilly in a defensive stance to the intruders. They are put under the care of a psychiatrist, Dr. Dreyfuss. There is a legal dispute over custody of the children between Lucas and a rich aunt on the childrens' mother's side, while the court questions the ability of Lucas and Annabel to raise the children in a small apartment with little income given their special needs. Dr. Dreyfuss agrees to recommend Lucas and Annabel as the childrens' legal guardians as long as they agree to move into a special home used to perform case studies, knowing that he would not be able to monitor their progress if their aunt, who lives on the other side of the country, were to obtain custody.
It quickly becomes apparent that the strange figure, who the children repeatedly refer to as "Mama", is in the new home with the children. Her history is given throughout the movie through a combination of dreams Anabelle has (induced by Mama), research by Dr. Dreyfuss, and conversations with Victoria. "Mama" was a former patient at a mental asylum in the 1800's; her appearance and simple actions imply she had Down Syndrome, though this is never officially stated. She breaks out of the asylum and stabs a nun who had taken Mama's baby (also named Lily) into her care then steals the baby back. Chased by the authorities, she ends up at the edge of a cliff overlooking the lake; seeing no other path, she jumps and hits a tree branch on the way down. While Mama fell into the lake, the baby (killed by the impact) was stuck to the tree trunk and was recovered by the pursuers. Mama becomes a ghost, twisted by the sad emotions of not knowing where her child is (she is unaware of why the baby was not in the lake with her). This causes her to take a form of physically being twisted, with body parts askew and many joints bending the wrong way. She searched the woods for centuries trying to find her baby, until she stumbled upon Victoria and Lily about to be killed in the cabin, and began taking care of the children as her own.
Mama's presence is generally signaled by black butterflies and electrical problems. She plays with the children but hides from sight of anyone else; Victoria always takes off her glasses when she looks at Mama and tells Dr. Dreyfuss she won't come where she can be seen. Early in the movie, Lucas is pushed down the stairs by Mama and ends up in a coma. This forces Annabel, who does not want the children, to take care of them. Over time, Victoria becomes more like a normal child, but Lilly retains her animalistic nature; this is attributed to the fact that Victoria was older and thus had socially developed before their abandonment in the woods. Over time, Annabel becomes attached to the children, and later, Victoria begins to prefer her over Mama, but Lilly still remains completely loyal to Mama. Annabel becomes aware there is something wrong and that Mama may indeed be real. Victoria worries for her safety, saying Mama gets very jealous.
Dr. Dreyfuss begins to believe the stories of Mama, first because Victoria is able to tell stories with information she shouldn't be able to know, and later because he actually sees Mama. In the course of the investigation, he obtains custody of the corpse of Mama's baby. Dr. Dreyfuss comes to believe that Mama is located in the cabin in the woods and goes to investigate but is killed by Mama there. The aunt believes Annabel is abusing the children (due to bruises Lilly has from her animalistic tendencies) and begins to spy on the house for proof. Lucas has a dream induced by his dead brother while in a coma, asking him to save his children and pointing him to a location in the woods. Annabel visits Dr. Dreyfuss's office after another supernatural night at the house but finds out he is missing; she steals his objects related to the case. At this point, she learns of the aspects of the case which the doctor had found out about and finds the baby's corpse. At the same time, Mama becomes angry and attacks the children and Annabel; Victoria tries hard to defend Annabel and pleads for Mama to stop, but Lilly is still clearly loyal to Mama. Annabel is knocked out, but at the last moment the aunt breaks into the house and has her body possessed by Mama. Mama uses this body to take the children to the cabin.
Annabel wakes up, grabs the baby's corpse, and drives to the lake, finding Lucas along the way, who has left the hospital and gone to the site his brother told him about in his coma dream. They arrive at the cabin, finding the aunt's corpse but neither Lilly nor Victoria. Annabel sees the cliff that Mama had originally jumped from; remembering the warning that ghosts are twisted souls doomed to repeat their mistakes, she realizes Mama's intentions to jump off the cliff with the children. Lucas and Annabel arrive in time to stop the children from jumping, but Mama attacks them. The assault is stopped when Mama finds her baby's corpse, begins crying, and prepares to jump off the cliff with it, her twisted appearance reverting to a more human one. However, as they are leaving, Lilly shouts to Mama and she regains her twisted appearance and attacks again, knocking out Lucas. She grabs the kids and walks to the edge of the cliff. Annabel tries desparately to stop Mama, eventually beaten to the point that she can only hold onto Victoria. Once at the edge of the cliff, Victoria tries to convince Lilly not to go, and Lilly cries that Lilly, Victoria, and Mama should all be together. Mama jumps off the cliff with just Lilly, and upon hitting the branch, Mama and Lilly turn into a shower of butterflies. The movie ends with Victoria realizing that one of the butterflies watching over her is in fact Lilly, perhaps referencing a ghostly regret of Victoria not going with her.