The first suicide was a sacrifice needed for a curse, started by two witch brothers, Sean (Shiloh Fernandez) and Aidan (Thomas Dekker). Lindsay (Elizabeth Rice) and Aidan try to stop the curse, but they are unsuccessful due to the pastor's son, Dylan (Kelly Blatz). The entire town dies after a mirror version of themselves compels them to commit suicide.
From Within takes place in a very small, very religious town. The movie opens with a teenage couple talking- after a brief discussion, the boy, Sean (Shiloh Fernandez) pulls out a gun and kills himself, much to the horror of Natalie (Rumer Willis).
Natalie is then seen running through the town, and into her father’s shop, where Lindsay (Elizabeth Rice) and her super religious, alcoholic step-mother Trish (Laura Allen) are shopping. Natalie is scared, trying to escape some unseen danger that is chasing her. She then locks herself into a back room, but by the time her father is able to get in, has stabbed herself in the neck with a pair of scissors. Her strange death is only the first of many of the townspeople’s alleged “suicides,” including Trish and Claire (Brittany Robertson), Lindsay’s best friend.
After Dylan (Kelly Blatz), the pastor's son and Lindsay’s ex-boyfriend, beats up Aidan (Thomas Dekker), Sean’s outcast brother, Lindsay drives Aidan home and the two begin to form a friendship. After arriving at his house, Aidan leads Lindsay to a creek behind his house, where he said his mother, Candace Spindle, “practiced her religion.” Candace died in a mysterious fire after being blamed for the death of Jimmy, a local boy. She, Aidan, and Sean were witches, and therefore condemned by the townspeople. It is revealed later that Dylan's father, Pastor Joe (Steven Culp) was in fact the murderer. He had been having an affair with Jimmy, and killed the boy to cover it up.
When Aidan’s cousin Sadie (Margot Harshman) comes to town, Lindsay soon finds out that Sean killed himself to start a curse- all because Aidan had asked him to. Lindsay tries to run away, but Aidan follows her, telling her that he has to stop it before it kills her. Sadie, on the other hand, has much darker ideas, and tries to destroy the Grimoire that holds the spell to stop the curse. At this point, Roy (Adam Goldberg), Trish’s boyfriend, along with Dylan and a few other fanatical church members storm the house. Aidan is able to escape with Lindsay, but Roy catches Sadie. He ties her up, pours gasoline on her, and burns her alive.
Dylan chases Aidan and Lindsay through the woods, shooting as he goes, so Aidan and Lindsay split up, and plan to meet at the docks. Lindsay arrives first, but the curse catches up with her. A mirror version of herself guides Lindsay’s hands, making her wrap a length of rope around her neck. Just as she begins strangling herself, Aidan runs to her, saving her. He tells her that that’s what’s scary- the danger comes from within.
Repeating what he had said earlier, Aidan tells Lindsay that some spells require great sacrifice, both to begin them and to end them. He pulls out a gun, then tells Lindsay that after it’s done, she must take the Grimoire and burn it, so nothing like this could ever happen again. Aidan kisses her then puts the gun under his chin. A shot is heard, and Aidan falls to the ground. After a moment, Lindsay looks up, only to see Dylan emerge from the woods, and onto the dock. He begins telling her that she is just as evil as the devil worshippers she aligned herself with. The other members of the group arrive, and Dylan raises his gun to shoot Lindsay. Roy tells him to stop, but Lindsay shoots Dylan first.
The police arrive later, and one officer comments to another about Aidan’s death being just another in a string of suicides. The other answers that Aidan didn’t kill himself, even though Lindsay said he had. Aidan meant to commit suicide, but it was Dylan who shot and killed him. Lindsay is shown burning the Grimoire in the woods, thinking that the curse had been stopped.
The movie ends showing the effects of the curse- everyone is dead, killed by their own hand.