A very powerful blizzard hits the fictional small town of Little Tall Island (also the setting of King’s novel Dolores Claiborne) off the coast of Maine. The storm is so powerful that all access off the island is blocked, and no one is able to leave the island until the storm is over. While trying to deal with the storm, tragedy strikes when one of the town’s residents is brutally murdered by André Linoge (Colm Feore), a menacing stranger who appears to know the town members’ darkest secrets, and who gives no hint of his motives other than the cryptic statement “Give me what I want, and I’ll go away.”
Linoge is imprisoned in the town’s holding cell by part-time constable Michael Anderson (Timothy Daly), but he uses his various abilities to affect the town, driving people to commit suicides and inflict terrifying dreams. After walking from his cell, Linoge’s campaign of terror culminates in an enchantment that places all eight of the town’s small children into unconsciousness. While looking for Linoge, Mike notices his name is an anagram for Legion, a collective group of demons mentioned in the Gospel of Mark and Gospel of Luke, having been exorcised by Jesus and cast into a herd of swine. Linoge eventually calls a town meeting, and it is here that Linoge states he desires one of the eight children he has enchanted. He reveals his true form (an impossibly ancient, dying man), explaining that he is not immortal, and needs someone to carry on his “work.” He states that he cannot simply take the child he desires, but he can punish. If they refuse, he threatens to force them to march into the sea two-by-two, as he claims to have done at Roanoke Island, North Carolina, centuries before. With his demands set, he leaves them with half an hour to make their decision.
Although Mike begs the town to refuse Linoge’s request, appealing to their common decency and the fact that they may be aiding in a great evil, all of the townspeople except him vote to give Linoge what he desires. Linoge has one parent of each child draw one of eight “weirding stones,” with Mike’s wife Molly drawing the black. Contemptuously thanking the town, Linoge transforms into his true form and suggests that the less they say to the outside world about the events with him, the happier they will be. With a final remark to Molly that Ralph will eventually come to call him “father”, Linoge flies off into the night with his new protégé.
Most of the film’s epilogue is narrated by Mike, as he explains how he leaves Little Tall the following summer. Unable to live with those who sacrificed his child, Mike divorces Molly and severs ties with those who were once his friends before settling in San Francisco as a US Marshal. As time passes, Mike hears of many prominent figures in Little Tall committing suicide through various means. Nine years after the storm, Mike notices an old man and a teenage boy walking by, humming Linoge’s favorite tune “I’m a little teapot”. He calls out to the boy, realizing it is his son, now corrupted by Linoge. He chases after them into an alley, but they are gone.
Mike considers telling Molly about what he saw, but ultimately decides against it; sometimes thinking that was the wrong decision, “but in daylight, I know better.”