On December 22, a suburban family gets together to celebrate the holidays—Tom (Adam Scott) and Sarah (Toni Collette), their children Beth (Stefania LaVie Owen) and Max (Emjay Anthony); Sarah’s sister Linda (Allison Tolman), Linda’s husband Howard (David Koechner), their children Stevie (Lolo Owen), Jordan (Queenie Samuel), Howie Jr. (Maverick Flack), and their baby daughter; Sarah and Linda’s aunt Dorothy (Conchata Ferrell); and Tom’s Austrian mother, who is affectionately referred to as “Omi” (Krista Stadler).
Max wants to continue the family’s Christmas traditions, but tensions between various members of the family keep everyone from having a good time and the family lose their Christmas Spirit. Shortly afterwards a severe blizzard appears and cuts out power in the entire town.
After a period of apparently being alone, with no power the family travel to Beth’s boyfriend’s house and find it in devastation, with the chimney split open as well as large, goat-like hoof prints on the floor. Fearing what they do not yet understand the family board up the doors and windows, promising Sarah they will look for the missing Beth when morning comes.
Omi reveals to the family what is happening—they are being tormented by Krampus, an ancient demonic spirit that punishes those who are bad at Christmas, referring to him as the “shadow of Saint Nicholas”. Omi admits that when she was young, her family’s poverty caused her to lose her love of the holidays, which summoned Krampus and resulted in her parents, and town being dragged into hell. She alone was spared by the demon, who left behind a bauble with his name inscribed and her life as a reminder of what happens when one loses their Christmas spirit.
In the attic, a bag of presents suddenly begins shaking. The family run to the attic and witness a large, snake-like jack-in-the-box monster abduct Jordan. The others are attacked by a group of monstrous toys, but fend them off and regroup downstairs. They are soon again attacked by Krampus’s elves, who abduct Dorothy, Howard, and the baby before leaving. The remaining family decide to make a run for a snow ploy in the street. Omi stays behind to confront Krampus and buy time for the others. As they run for the plow, the family is carried off one by one until only Max is left. Krampus then appears before Max and gives him a bauble with his name on it, wrapped in a piece of his shredded Santa letter, before leaving.
Max confronts and pleads with Krampus to give his family back and take him instead. Krampus seems to consider his request before picking Max up and holding him over a pit into the underworld. Max apologizes to the demon for losing his Christmas spirit but Krampus drops the screaming Max into the pit.
Max suddenly awakens in his bed on Christmas morning. He looks out his window and sees that the neighborhood has returned to normal, and finds his family downstairs opening presents. Believing that the entire experience had been a dream he opens a present and discovers the Krampus bauble. The family falls silent and the camera zooms out to reveal that their house is seen inside a snow globe on a shelf in the Krampus’ lair, along with others. This ending is left ambiguous with two possible conclusions:
1) The family has been physically shrunk down and trapped in the snow globe and will have to celebrate Christmas for all eternity as a twisted version of Hell.
2) Krampus believes the family has learned their lesson, the snow globe is only showing surveillance of the house instead of containing it, and he is merely spying on them to make sure that they never lose their Christmas spirit again. (This hypothesis is seemingly backed up by the prequel comic “Krampus: Shadow of Saint Nicholas”.)