Moving out of the city to a new life in small town suburbia, Robert Forrester (Paddy Considine) hopes to forget the tumult of his impending divorce from the volatile Nickie Grace (Caroline Dhavernas) by keeping a low profile in a new job as an aeronautics engineer. But underpinning his newfound quiet life is a compulsion he cannot resist: each night as he drives home, he is drawn to a certain house. He stops his car, kills the headlights and walks in the dark until he's close enough to see into the illuminated windows. Though he doesn't know her name, he watches Jenny Thierolf (Julia Stiles) washing dishes, cooking, carrying out domestic chores. He takes solace from her normal life.
But one night he gets too close; Jenny comes out of the house and sees him. Initially troubled, Jenny sees vulnerability in Robert that stops her from immediately calling the police. Instead, she invites him in.
Unexpectedly, the tables turn and Jenny begins stalking Robert. Out of guilt as much as fascination, Robert is drawn into a relationship with Jenny that has dire consequences; Jenny's boyfriend Greg Wyncoop (James Gilbert) warns Robert off. One night, Greg pursues Robert and they get into a fight near a river; Robert only manages to escape when Greg falls and hits his head.
When Greg doesn't return to work and is reported missing, Robert becomes the prime suspect in his murder. As the pressure builds, a nightmarish sequence of events unfolds that lead to Robert's almost inevitable destruction.