Warning: Spoiler! (Click to show)
Before the movie began, Leonard Shelby, an insurance claims investigator, was attacked in his home by two masked assailants. Leonard managed to kill the man who was raping and suffocating his wife but was brutally injured by the second man, who escaped. His wife did not survive the attack and Leonard was left brain damaged, losing his short term memory. The second attacker also manipulated the crime scene to make it seem as if the only attacker was the man Leonard had killed, forcing the police to drop the investigation. With nothing left, Leonard had set out on his own investigation to search for the other man, who is known only as "John G. or James G.".
Note: The story is told backwards, showing the ending first and the beginning last. Every next scene is an event Leonard has forgotten.
The movie is interspersed with scenes of Leonard in his motel room explaining his condition to an unknown caller. He also explains the story of Sammy Jankis, a man Leonard investigated for insurance fraud. Sammy apparently lost his short term memory, but after several tests his condition was defined as psychological instead of physical. In an attempt to snap him out of his state, Sammy's distraught wife had him inject her with her prescribed daily insulin shot every 20 minutes. She thought he would remember something this important, but each time, Sammy forgot that he'd already done it. His wife went into a coma and died, and he was institutionalized. Leonard soon realizes that he's forgotten who it is he is talking to and hangs up, refusing to answer again. A note is slipped under his door containing a photo of Leonard, smiling and covered in blood.
At the movie's start Leonard is shown to have taken the picture of a man he has just shot and killed in a derelict building. Shortly beforehand, Leonard and his soon to be victim Teddy, an apparent friend, leave Leonard's motel and head out to the derelict building. While they search the inside, Leonard finds a picture of Teddy in his pocket. The back of the picture reads "DON'T BELIEVE HIS LIES. HE IS THE ONE. KILL HIM." With this Leonard attacks Teddy, thinking he has finally caught John G. Teddy however ridicules Leonard's ignorance, claiming Teddy is not his real name and that there is something in the basement Leonard should see that will provide the truth to what Leonard has become. Leonard, however, cannot control his anger and kills Teddy.
Before Teddy arrived to pick him up, Leonard was in a restaurant bathroom washing his hands. He finds two tattoos on hand and wrist that read "REMEMBER SAMMY JANKIS" and "THE FACTS...". When he leaves the restroom a waiter gives him his belongings, one being an envelope. Leonard goes back to his motel and opens the package, given to him by a woman named Natalie. Inside is the apparent identity of John G. by way of a license number. The number belongs to Teddy and he writes the note on the picture to kill him. As Leonard prepares to leave, he is shown to have numerous informative tattoos (most of which are facts about John G.) all over his body. One such is on his chest, "JOHN G. RAPED AND MURDERED MY WIFE". In the motel lobby, Leonard discusses his condition with the clerk before Teddy arrives.
Before this Leonard arrives at the restaurant and meets with Natalie, who gives him the information on John G. and the two discuss Leonard's wife. Natalie has apparently helped Leonard because he had helped her before. The note on the back of her picture reads that she will help him out of pity and she has also lost someone. On his way to meet with Natalie, Teddy invites him for lunch and they discuss their search for John G. and also Leonard's disciplined documentation of new events to replace memory. Teddy shows his optimism toward helping Leonard.
Leonard wakes up lying next to Natalie in her home. The two share a brief kiss in an intimate moment. She tells him that she will have the man with the registered license plate number in a little while. The night before, Leonard arrived at Natalie's door angrily inquiring about a man named Dodd. Natalie claims Leonard offered to help her get rid of Dodd and that he was out to get her. Leonard calms down and it is revealed that Natalie's boyfriend, Jimmy, has disappeared when he went to meet a man named "Teddy". When lying in bed with Natalie, Leonard emotionally divulges his feelings toward the loss of his wife mixed with the confusion of his condition.
Prior to going to Natalie's house, Leonard wakes up in a motel room different from his. In the closet he finds the man known as Dodd, severely beaten with tape over his mouth. Teddy arrives, saying Leonard called asking for help. Dodd claims Leonard was the one who did this to him. Leonard and Teddy decide to make Dodd leave town, threatening to kill him. Leonard then goes to Natalie's looking for answers.
Before this, Leonard is in a bathroom holding a wine bottle for some reason. He decides to take a shower. Dodd then enters and he and Leonard fight. Leonard incapacitates Dodd and ties him up. He then calls Teddy asking for help. The reason Leonard was in the hotel room is then shown: Leonard is running frantically for some reason. He realizes Dodd is chasing and shooting at him, and escapes in his car. A note in his pocket provides Dodd's address and Leonard breaks into his motel room, grabs a wine bottle as a weapon and waits in the bathroom. Dodd was originally following Leonard and then attacked him head on, forcing Leonard to run away.
That same morning before the encounter with Dodd, Leonard had arrived at a desolate location and burned many of his wife's belongings, in a failed attempt to forget her and move on. A few hours before Leonard had hired a prostitute to lay around those same belongings in his motel room, sleep next to him, and then go to the bathroom as a brief simulation of a night with his wife.
The day before, Leonard encounters Teddy after leaving Natalie's house. He claims that Natalie is conning Leonard into helping her and that he can't trust her. Knowing from his picture reading "DON'T BELIEVE HIS LIES" that he can't trust Teddy, he ignores him. Inside Natalie's house, Leonard was frantically searching for a pen before she arrives beaten. She claims Dodd beat her and begs Leonard to help her. He agrees and is given information on Dodd. It is revealed however that before this, Natalie entered unscathed and told Leonard about Dodd and demanded that he kill him for her. When he refuses, she viciously berates him, his condition and his wife. In his anger, Leonard attacks Natalie, who then exits the house long enough for Leonard to forget what happened and then enters and manipulates him.
Before this, Leonard is shown arriving at the bar where Natalie works, where she treats him harshly on behalf of the suit he is wearing and the car he drives. When asked if he knows Jimmy Grants, some cop, or a guy named Teddy he says no, remembering. After explaining his condition and his wife's death, Natalie shows sympathy towards him and allows him to stay at her place for awhile.
Before he arrived at Natalie's bar, Leonard stopped to tattoo John G.'s license plate on his body. Teddy arrived and told Leonard that he should leave town because a crooked cop is out to get him. Leonard again regards Teddy's photo and ignores him.
Finally Leonard finds out the one calling him was a cop who claims to have found John G. The cop turns out to be Teddy and tells him that the murderer is a drug dealer, and that he can be found at an abandoned building outside of town. Leonard goes to the building and ambushes a man named Jimmy Grantz, Natalie's boyfriend, who recognizes Leonard. Leonard forces Jimmy to take off his clothes before killing him. He then puts on Jimmy's clothes so that he can dispose of his own bloody ones.
A few minutes later, Teddy (Joe Pantoliano) arrives at the abandoned building, and Leonard discovers he has been tricked. Jimmy Grantz was a local drug dealer and was not involved in his wife's murder. After Teddy exclaims "So you lie to yourself to be happy. Nothing wrong with that. We all do it.", he reveals the truth: Leonard conditioned himself to integrate the Sammy Jankis story (who was actually a fraud with no wife) with his story (Leonard's wife survived the attack, had diabetes and died when she made Leonard give her an insulin overdose). Teddy is revealed to be the detective that took pity on him and helped Leonard hunt down and kill the real John G. over a year ago. To Teddy's surprise, Leonard forgot and continued his search. Teddy admits that he manipulated Leonard into killing Jimmy and set up a fake drug deal to steal Jimmy's money and split it with him. Attempting to convince Leonard, Teddy reveals that they have been tracking different "John G."'s in various towns for months and that Teddy himself is also a "John G.", his real being John E. Gammell.
Leonard is at first distraught, but soon realizes that revenge was his only reason to live and so provides himself a new John G. to kill: Teddy. Leonard burns the photo evidence of the real John G. and Jimmy Grants' deaths and instead writes the "DON'T BELIEVE HIS LIES" note on the back of Teddy's photo. He also writes down Teddy's license plate number, all to set up Teddy's murder. Leonard leaves in Jimmy's car and ponders whether or not what he is doing is fair. He convinces himself it is before stopping at the tattoo parlor. Leonard has already forgotten what he has done.