Muriel Margaret McAuley is an 84-year-old widow living alone in the remote Scottish fishing village of Witchaven, where her late husband Billy built their cottage decades ago. Billionaire Patrick Grant and his company, The Grant Organisation, are developing a golf course along the coast, systematically buying out residents and demolishing their homes. A young American representative named Shelly, notable for her strikingly perfect teeth, arrives with another purchase offer, but Muriel refuses and chases her off with a broom.
Witchaven has shrunk from 55 residents to seven holdouts. At a meeting around retired lawyer Terry Munro's kitchen table, two more accept Grant's offer, fearing a compulsory purchase order, a legal mechanism that would force them to sell. This leaves five: Muriel; her neighbor Arthur Eastman, Billy's former best friend; Terry; and the elderly couple Jock and Jeanie Baird. When a bulldozer demolishes Muriel's chicken coop, Arthur fires a warning shot from his shotgun and is arrested the next morning. Grant appears on television calling Arthur mentally unstable and declining to press charges, a calculated move to discredit him.
Distraught, Muriel walks toward Rory's Cave, a local landmark where Billy once proposed to her by candlelight. She reflects on her lifelong fear of the open ocean: She has always loved the sea from shore but refused to set foot on Billy's boat. She spots a rainbow glow in the waves before it vanishes into the haar, a freezing sea fog common to Scotland's coast. Near the cave, Conor Grant, Patrick's son and overseer of the construction, shoves Muriel down, kicks her in the ribs, and threatens her life.
Limping home through the haar, Muriel hears a voice calling her name and sees the rainbow glow spiraling in the fog. She finds a strange creature on the rocks: an amorphous, color-shifting blob with a single milky eye. It wraps a tentacle around her finger, and a warm numbness erases her pain. The creature is dying, so Muriel wheels it home and places it in her bathtub, where it revives. That night, she hears Billy's voice say he loves her, the first sign the creature can access her memories.
She names the creature Avalon, after the singer Frankie Avalon. As Avalon wraps around her arm, euphoria floods through her, but he also punctures her skin and drinks her blood. Later, he speaks aloud in Billy's voice. She reaches for a razorblade to draw more blood, but Avalon stops her, flinging the blade into the bathroom wall and pressing a tendril to her temple to speak her name clearly. Billy disappeared 12 years earlier, sailing into the haar one morning and never returning. His empty boat was found adrift in the North Sea. Now his voice fills her bathroom.
That night, three teenagers paid to commit arson set Arthur's cottage ablaze. Arthur dies in the fire, though he stabs one of the boys, Tommy Boden, before the flames consume him. The injured Tommy stumbles into Muriel's unlocked cottage, where Avalon dissolves and consumes his body. Muriel returns to find a naked man sitting in Billy's chair: Avalon has used the consumed body to recreate Billy's younger appearance, drawing on her memories. She gives him Billy's wedding suit. On the beach, Avalon reveals he is an ancient creature who existed before humankind. But Billy's form soon deteriorates, his face melting and body liquefying, and he reverts to his creature form.
Over the following days, Muriel repeatedly cuts herself to feed Avalon her blood. At Arthur's funeral, Terry tells her the remaining residents have accepted Grant's offer. Muriel refuses and watches the last of them leave. Two hired killers then break into her cottage with a noose, sent to stage her death as a suicide. She steers them into the bathroom, slashes her arms, and deliberately feeds her blood to Avalon. He revives, kills both men, and takes Billy's form again, healing Muriel's wounds. When Billy kisses her, she is flooded with horrific memories belonging to people Avalon has consumed over centuries.
That night, Avalon takes the form of a young Muriel and lures three construction workers to their deaths. The next morning, the machines fall silent. Billy takes Muriel to Rory's Cave, where candles appear on the walls as if recreating his original proposal. He restores her youth, and they make love for the first time in decades. Afterward, Avalon's strength fades. At the cottage, Shelly tears a bag from Muriel's hands, spilling Avalon's weakened form onto the grass. Muriel tries to lure Shelly inside to feed her to Avalon, but Shelly refuses. Muriel bites her own arm to draw blood for the creature, having crossed a moral threshold.
Patrick Grant arrives with 20 vehicles, including a van from The Beechburn Institute, a psychiatric hospital, planning to have Muriel committed on live television. Grant enters the cottage and tells Muriel she has lost. Escorted to the bathroom by Shelly, Muriel shoves her backward into the razorblade still embedded in the wall. The blade cuts a deep gash down Shelly's spine, and her face strikes the toilet, shattering her perfect teeth. Avalon rises from the tub and kills Shelly, then dispatches two security guards who burst in. Grant grabs a gun and shoots Muriel. Avalon, in Billy's form, extracts the bullet and heals her.
Muriel's phone rings: Her grandson Jack is watching live coverage from London, begging her to surrender. She tells him she loves him and asks him to promise that if he loves someone, he will tell them every day. She says goodbye. Avalon offers to kill everyone outside, but Muriel refuses. The innocent must not die. She wants only one more perfect day.
She marches Grant at gunpoint toward Rory's Cave as the haar rolls in. Inside, Avalon takes Billy's form. Grant cowers in a corner, offering escalating sums of money, and Muriel shoots him dead. Billy proposes an alternative to death: Muriel can come with him into the ocean, experiencing it through his senses, never parting from him. Muriel, who has feared the open sea her entire life, accepts. He kisses her. She closes her eyes and never hears the end of his sentence.
A reporter watches a figure emerge from the cave: Patrick Grant, naked and without obvious blood. This is Avalon in Grant's form. On live television, "Grant" kills Conor. The feed cuts, but the reporter streams the rest on social media: "Grant" wading into the sea, turning toward shore, and calling out to Jack to remember his promise, that she loves him, Muriel's words leaving Grant's lips. He disappears beneath the waves. Police find no trace of Muriel.
In the epilogue, Jack, who had a good idea of what happened after recognizing his grandmother's farewell in Grant's voice, carries this understanding until his death at 73. His husband of 47 years, Ben McAuley-Richter, notes at the funeral that Jack told Ben he loved him every day and never missed once. Muriel's consciousness descends into the ocean through Avalon's being. She feels regret for what she leaves behind but accepts there is no place for her above. The names Muriel and Billy McAuley will fade. The idea frightens her, but the fear will pass. She lets go and surrenders to the darkness of the ocean.