Rose (Radha Mitchell) and her husband, Christopher Da Silva (Sean Bean), are concerned about their adopted daughter, Sharon (Jodelle Ferland), who has been experiencing nightmares and sleepwalking
while screaming the name of a town, "Silent Hill". Desperate for
answers, Rose takes Sharon to Silent Hill. As they approach the town,
she is pursued by police officer Cybil Bennett (Laurie Holden).
A child appears in the middle of the road, causing Rose to swerve and
crash the car, knocking herself unconscious. When she awakens, Sharon is
nowhere to be seen, and fog and falling ash blanket the town.

Rose wanders the empty streets of Silent Hill looking for her
daughter and instead encounters various monsters which appear after
sirens wail. Rose comes across a woman named Dahlia Gillespie (Deborah Kara Unger)
who speaks of terrible things done to her own daughter, Alessa, by the
townspeople. She claims that Sharon is Alessa. Rose returns to her car
and runs into Cybil, who arrests her. After they discover that the road
leading out of town has disappeared they pair up to search the town.

Meanwhile, Christopher also simultaneously scours the town, which is
shown to be abandoned and without the mist and falling ash, with the
reluctant assistance of Officer Thomas Gucci (Kim Coates), who grew up in the town. Christopher discovers documents showing that the town was abandoned after a coal seam fire
thirty years before, along with a photo of Dahlia's daughter who bears a
remarkable resemblance to Sharon. Told to stop investigating under
threat of incarceration, he reluctantly heads home.