Trevor (Christian Bale) finally finishes the hangman game; it reads: KILLER.
He hit a little boy while driving through a red light, and left the scene -- one year ago. His guilt over the incident has caused his insomnia and in turn, his weight loss, paranoia, and hallucinations. Ivan, Maria, and her son Nicolas are not real.
He decides to turn himself in to the police, and in a jail cell, he finally starts to get some sleep.
Trevor Reznik (Christian Bale) is an industrial worker suffering from a one-year battle with insomnia, which has left him in horrible condition (his weight is around 120 and dropping). He frequently goes to an airport cafe to chat and flirt with a divorced waitress named Marie (Aitana Sánchez-Gijón). He also frequently sees a hooker named Stevie (Jennifer Jason Leigh).
One day, he starts seeing post-its on his fridge. They resemble a game of 'hangman'. He also starts getting strange visits from a stocky bald man named Ivan (John Sharian), who supposedly is a new worker (though his boss has never heard of him).
Trevor causes an accident which costs his friend's arm. This leaves Trevor as an outcast at work.
He continues to get into strange occurrences, while looking for comfort from Marie and Stevie (separately, of course). He takes Marie and her son to an amusement park. After a scary ride with many creepy sights, Nicholas (the son) has a seizure. Trevor blames himself, but Marie doesn't and seems quite forgiving about the whole thing.
Back at work, Trevor gets into an accident himself, which almost costs his arm. He starts to become paranoid at everyone around him. He believes someone is after him, possibly Miller (the man who lost his arm). All of his paranoia surrounds Ivan though.
Stevie meanwhile, wants to leave hooking and start a relationship with Trevor, to which Trevor agrees. However, he continues to have strange events. He discovers Ivan's plate numbers and goes to the DMV. They won't help him unless he has a criminal complaint to file. Trevor then jumps in front of a car so he can go to the police and say he suffered a hit and run, giving Ivan's license plate. The plates end up being in Trevor's name. He goes back to Stevie, who tries to help him heal. He then finds the picture of Ivan, and accuses Stevie of being in on the plot against him. This leads to confusion, and then a heated argument, to which Trevor is thrown out.
He goes back to his apartment, to find Ivan and Nicholas already going in. He goes in and has a fight with Ivan. He cuts his throat but can't find Nicolas. Trevor then tries to dump the body, but discovers that in almost the blink of an eye, the body is missing.
The scene skips back to his place where he once again sees Ivan. This is where he realizes: He made Ivan up. He also made up his encounters with Marie and Nicholas. He has a flashback, and realizes he killed Nicholas long ago in a hit and run accident.
The hangman game ends up saying 'killer'. His guilt has caused his insomnia and trip into madness. He turns himself in, and finally in his jail cell, he can start to get some sleep.
Thanks Edmundo (Long) and Erica (Pooper)!