This fast-paced psychological thriller begins with a backward sequence. It starts with the Polaroid photograph of a dead man. As the sequence plays backwards the photo reverts to its undeveloped state, entering the camera before the man is shot in the head. This is followed by interspersed black-and-white and color sequences, with the black-and-white sequences taking place chronologically before the color sequences.
The black-and-white sequences begin with Leonard Shelby (Guy Pearce) in a motel room speaking to an unnamed telephone caller who is not shown on-screen. Leonard has anterograde amnesia and is unable to store recent memories, the result of an attack by two men.
Leonard explains that he killed the attacker who raped and strangled his wife, but a second clubbed him and escaped. The police did not accept that there was a second attacker, but Leonard believes the attacker's name is John (or possibly James), with a last name starting with G. Leonard conducts his own investigation using a system of notes, Polaroid photos, and tattoos.
As an insurance investigator, Leonard recalls one Sammy Jankis (Stephen Tobolowsky), also diagnosed with the same condition. Sammy's diabetic wife (Harriet Sansom Harris), who was not sure if his condition was genuine, repeatedly requested insulin injections to try to get him to break his act. He did not and as a result she fell into a coma and died.
The color sequences are shown in reverse chronological order. In the story's chronology, Leonard gets a tattoo, based on instructions to himself, of the license plate of John G. Finding a note in his clothes, he meets Natalie (Carrie-Anne Moss), a bartender who resents Leonard as he wears the clothes and drives the car of her boyfriend, Jimmy.
After understanding his condition, she uses it to get Leonard to drive a man named Dodd (Callum Keith Rennie) out of town and offers to run the license plate to help his investigation. Meanwhile, Leonard meets with a contact, Teddy (Joe Pantoliano). Teddy helps with Dodd, but warns him about Natalie; however, Leonard has written on a photo of Teddy to not trust him.
Natalie provides Leonard the driver's license, which shows a John Edward Gammell, Teddy's full name. Confirming Leonard's information on "John G" and his warnings, Leonard meets Teddy and drives him to an abandoned building, killing him as shown in the opening.
In the final black-and-white sequence, prompted by the caller, Leonard meets Teddy in the motel lobby. Teddy is an undercover officer and has found Leonard's "John G", Natalie’s boyfriend Jimmy Grantz (Larry Holden), and directs Leonard to the same abandoned building outside of town. When Jimmy arrives, Leonard strangles him and takes a photo of the body.
As it develops the black-and-white transitions to color, thus beginning the color sequences. Leonard swaps clothes with Jimmy, hearing Jimmy whisper "Sammy". As Leonard has only told the story of Sammy to those he has met, he doubts Jimmy is the attacker. Teddy arrives and asserts that Jimmy was John G but when Leonard is not convinced, Teddy reveals that Leonard had killed the real attacker over a year ago after Teddy helped Leonard find him.
Teddy claims that Leonard confused elements of his life with that of Sammy, who was a con man with no wife. Leonard's wife was diabetic, had survived the attack and was the one who died in the insulin overdose. Teddy accuses Leonard of creating an unsolvable puzzle to give himself purpose and since "John G" is a common name, he will continually forget, beginning his search again and that even Teddy himself has a "John G" name.
After hearing Teddy's exposition, Leonard consciously burns the photograph of Jimmy's body, drives off in Jimmy's car and has Teddy's license plate number tattooed on himself as the one of the second attacker, which will lead to the events of Teddy's death.