Douglas Quaid (Arnold Schwarzenegger) is a construction worker in the distant future. He is happily married to Lori (Sharon Stone), but is dissatisfied with his place in life.
She teases him about a recurring nightmare about being on Mars with a beautiful woman who is not his wife.
On the way to work, he passes through a security monitor X-ray system to check for any unauthorized weapons.
He sees an advertisement on the subway TV for REKALL, Inc., a facility that implants fake memories of ideal vacations.
Against the advice of his co-worker Harry (Robert Costanzo), Doug visits REKALL where the receptionist is changing the color of her painted nails with a pen device. Quaid orders a special package that will implant memories of an adventure trip on Mars as a secret agent. Before the procedure begins, he is asked to select a woman of his choice.
He chooses a brunette, with an athletic body, and a sleazy and demure personality. Before the memory implantation procedure can begin, Quaid goes into a violent rage, ranting about his cover being blown and how men are coming to kill him. He tries to break free of his restraints, and the REKALL director tries to calm Quaid. Quaid responds by throttling him and muttering, "My name is not Quaid!" The technicians tranquilize him and he falls unconscious.
The REKALL director believes that Doug was acting out the secret agent part of the trip, but learns that the memories have not yet been implanted. The technicians realize that Doug's memory had previously been erased. To cover their involvement, the REKALL director orders his team to erase his memories of REKALL, refund his credits, and send him home. Quaid awakens in a Johnny Cab that takes him to a subway station where he can catch a train home.
While walking through the subway, he is attacked and detained by several men led by Harry, his co-worker. They accuse him of blabbing about Mars while he was at REKALL, although because REKALL erased his memory, Quaid cannot remember anything about REKALL or being on Mars. Harry prepares to shoot Quaid, but Quaid fights back, successfully killing off Harry and all of his men. He doesn't understand how he could have these skills and is horrified at his actions.
Quaid rushes back home to Lori and tells her what happened. She recognizes that he's regained his memory of Mars and attacks him. They fight and Doug subdues and interrogates her. Holding a gun that he took from her to her head, Quaid pressures Lori into revealing that his original identity has been erased and a new one implanted, which included her as his wife so she could watch over him for past six weeks.
An astonished Quaid asks, "If I'm not me, who the hell am I?" A video monitor in Quaid's apartment displays the arrival of several men with weapons outside their apartment building. Quaid knocks Lori out and flees. He is pursued by Lori's real husband Richter (Michael Ironside), an agent of a mysterious Agency led by Vilhos Cohaagen (Ronny Cox), the corporate dictator of Mars.
Richter is intent on killing Quaid who he apparently knew on Mars. Lori greets Richter as her real-life husband. Richter and his men try to kill Quaid as they chase him through the streets and into an underground subway station. As Quaid escapes he kills some of Richter's men.
Cohaagen contacts Richter and asks about the gunfight. Richter explains that he is "trying to neutralize a traitor." Cohaagen angrily orders Richter not to kill Quaid because they still need him. He tells Richter that Quaid must be captured alive for re-implantation. Richter, intent on killing Quaid, pretends he has a bad connection and hangs up. Helm tells Richter they've located Quaid using a tracking device. Doug finds a room in a cheap, anonymous hotel, but a mysterious man calls him in his room and tells him he as a suitcase for him.
Quaid, puzzled, asks who he is. The man says they were agents together on Mars. He tells Quaid that there is a bug inside his skull that allows Richter to track him. Following the man's instructions, Quaid wraps his head in a wet towel to disrupt the tracking signal. He gets the suitcase and as he is leaving the hotel Richter and Helm arrive. They chase Quaid in a taxi who escapes their violent pursuit and flees to an abandoned factory. Richter uses the tracking device to follow Quaid there. When Quaid opens the case a screen plays a recording of himself.
He finds a variety of spy gear inside the suitcase. The recording tells Quaid he was originally Hauser, a high-ranking member of the Agency and Cohaagen's key agent. In the recording, Hauser tells Quaid that he met Melina (Rachel Ticotin), an agent for rebels on Mars, and that she convinced him to switch sides. Hauser says that Cohaagen discovered his treason, the Agency erased his identity and a new one implanted. In the new identity, Quaid was exiled to Earth where he could be watched. Hauser tells Quaid how to remove the tracking device from his skull.
After Quaid successfully extracts the bug, Hauser tells him to go to Mars and connect with the rebels to help destroy Cohaagen's empire. Quaid stuffs the bug inside a piece of chocolate which a rat carries it off. Richter and his gang show up and begin firing where their tracking device shows where Quaid is. They finally discover it was the rat who had the bug. Pissed, Richter blasts the rat, splattering it's blood on the screen.
Quaid arrives on Mars at a giant domed mining colony half-buried in the martian landscape. Many of the people living on Mars are deformed and possess psychic abilities caused by the mixture of solar radiation and shoddy air quality provided by Cohaagen. Cohaagen's men follow Quaid to Mars and locate him in the immigration and customs facility.
They attempt to kill Quaid who had disguised himself as a large elderly woman, but he escapes. Cohaagen tells Richter that he doesn't have all the information about Quaid and he needs to follow orders. Quaid gets a suite at the Hilton and retrieves a note from a hotel safe that he left for himself. It tells him to contact Melina at The Last Resort. Outside the hotel, a mutant taxi driver named Benny (Mel Johnson Jr.), persuades Quaid to let him take him to Venusville and The Last Resort, a bar and brothel.
Quaid finds Melina, who strongly resembles the woman he requested at REKALL, but he can't remember her and she doesn't believe his story. She orders him to leave at gunpoint. Quaid returns to the Hilton and is visited by Dr. Edgemar (Roy Brocksmith), the founder of REKALL, who Quaid saw in a REKALL ad on Earth. He tells Quaid that everything that has happened since his trip to REKALL is all in his mind.