Douglas Quaid (Arnold Schwarzenegger) is a construction worker in the distant future. He is happily married to a woman named Lori (Sharon Stone), but is dissatisfied with his place in life. He also has a recurring nightmare about being on Mars with a beautiful woman who is not his wife. One day he sees an advertisement on 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 one day and 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.
However, during the memory implantation procedure, he goes into a violent fit, ranting about his cover being blown and how men are coming to kill him. The Rekall director gets involved in the fight, and tries to calm Quaid down. Quaid responds by throttling him and muttering, "My name is not Quaid!" The technicians manage to tranquilize him, and he falls unconscious. The director believes that Doug was acting out the secret agent part of the trip, but he is told that the memories had not been implanted yet, and the technicians realize that Doug's memory had previously been erased. Realizing who was responsible, the clinic director orders his team to erase his memories of Rekall and send him home.
Quaid awakens in a taxi, which takes him to a subway station for home. While walking through the subway, he is attacked by several men led by Harry, his co-worker. They claim that he "blabbed about Mars" while he was at Rekall, although Quaid claims not to know what they are talking about or remember anything about being on Mars. A fight ensues, in which Quaid manages to kill Harry and all of his men, but is horrified at what he has done. He rushes back home to Lori, but when he tells her what happened, she also attacks him. Doug eventually subdues and interrogates her. WIth Quaid holding the gun he took from her to her head, Lori reveals that his original identity had been erased and a new one written in, which included her as his wife which she has play-acted for the last six weeks. An astonished Quaid asks, "If I'm not me, who the hell am I?"
When he notices that several men with guns are arriving at their apartment building, Quaid knocks Lori out and flees, being pursued by Richter (Michael Ironside), an agent of the mysterious Agency in the employ of Vilhos Cohaagen (Ronny Cox), the corporate dictator of Mars. Richter is insanely jealous because he somehow knows Quaid from Mars and also because Lori is really Richter's wife. Richter and his men chase Quaid through the streets and to a local underground subway station with guns blazing away. Quaid manages to escape and even kills a few of Richter's men. Afterwords, Cohaagen contacts Richter asking about the comotion being reported and Richter explains that he is "trying to neutralize a traitor." Cohaagen angrily orders Richter not to kill Quaid for they still need him and he must be captured alive for re-implantation. But Richter hangs up and learns the whereabouts of Quaid from his right hand man, Helm, from a tracking device they have.
Across the city, Doug finds safe haven at a cheap hotel, but is contacted by a mysterious man who gives him a suitcase; the man also informs Quaid that a bug is lodged in his skull, enabling the Agency to track him. Quaid wraps his head in a wet towel to disrupt the signal, then takes the suitcase. He leaves the hotel just as Ritcher and Helm arrive and flees to a secluded location at a closed down factory after another wild and violent chase, this time in cars along the city streets.
Inside the suitcase is a variety of spy gear as well as a video of himself. He sits down to watch the video and sees an individual who looks and sounds just like him. The figure reveals that Quaid was originally Hauser, a high-ranking member of the Agency and the right-hand man of Cohaagen. Hauser claims to have met Melina (Rachel Ticotin), an agent for rebels on Mars who convinced him to switch sides, but when his treason was discovered, the Agency had his identity erased and a new one implanted in which he was exiled to Earth where he could be watched. Hauser first instructs Quaid to use the equipment in the case to remove the bug from his skull. After Quaid does so, Houser then tells him to get to Mars and and set things right, boasting that he has enough information that can destroy Cohaagen's empire.
A few weeks later, Quaid arrives at Mars, which is a domed mining colony. Many of the people on Mars are mutants with deformed features and psychic abilities caused by the mixture of solar radiation and shoddy air quality provided by Cohaagen. The Agency has followed Quaid as well, and a battle ensues at the airport as Richter and his men attempt to capture him. Quaid escapes and eventually befriends Benny (Mel Johnson Jr.), a mutant taxi driver who drives him to a local neighborhood known as Venusville to a bar/brothal called "The Last Chance Oasis" where Quaid meets Melina (who strongly resembles the woman he requested at Rekall), who doesn't believe his story and orders him to leave at gunpoint.
Disconsolated, Quaid gets a hotel room at the local Hilton Hotel but is later visited in his room by Dr. Edgemar (Roy Brocksmith), the founder of Rekall who appeared in the Rekall news ad he saw on Earth. Edgemar tells Quaid that everything that has happened since his trip to Rekall is all in his mind. Everything around them is a dream that he is having back on Earth. Quaid is actually living out the memories he had wanted implanted, only the technicians have lost control of him and cannot wake him up from his comatose dream state. Doug doesn't believe this, but Dr. Edgemar then has Lori enter the room. She pleads with Doug to listen to Dr. Edgemar and that she is very concerned for his well-being. Edgemar offers Doug a pill, supposedly "a symbol of his desire to return to reality", saying that if he takes the pill, he will fall asleep and then wake up safely at the memory implant facility.... if he wants to. He assures Quaid that if he doesn't take the pill, he will probally end up lobotomized and his mind will be trapped in this alternate reality forever. Quaid seriously considers the offer, but before he can swallow the pill, he spots a drop of sweat moving down a very nervous Dr. Edgemar's head. Realizing he might be in reality after all, he immediately shoots Edgemar through the head, killing him. Immediately after, a team of men break through the wall of the room and capture Quaid.
Lori and the men take the subdued Quaid to an elevator to take him down to the lobby where Richter and his lead henchman, Helm, are waiting for them. However, Melina comes to Quaid's rescue with a sub-machine gun, and a battle ensues, which ends with Lori and all her henchmen being killed. They are chased out of the hotel by a very angry Richter. Quaid, Melina and Benny flee to the mutual neighborhood where they then escape to a rebel hideout as a vicious battle between rebels and the Martian goverment army ensues. Helm is killed during the battle as well as several of Richter's soldiers. Richter himself bearly escapes with his life and takes command of a platoon of reinforcements. Cohaagan calls Richter after hearing about the firefight and orders him to pull back. Richter and his men retreat and the entire neighborhood is sealed off and the air fans to the area are turned off.
Quaid is taken by the rebels to meet Kuato, the hidden leader of the rebellion. Kuato is supposedly psychic and not only can spot undercover Martian agents, but extract information from them. The hope is that Kuato can read Quaid's mind and figure out important information in order to defeat Cohaagen and free Mars. Quaid is taken to see George (Marshall Bell), a high ranking rebel officer. They go into a room to meet Kuato, but no one is there. George then opens his shirt and reveals a small head and arms, which is Kuato, George's conjured twin brother. Kuato reads Quaid's mind and sees a vision of alien ruins underneath Mars that Cohaagen has kept secret. Just then, the rebel hideout is attacked by Martian forces. The rebels are slaughtered as Quaid, Melina, Benny and George/Kuato flee. As the group prepares to escape, Benny shoots and kills George/Kuato, revealing himself as a covert enemy agent. Quaid and Melina are captured by Richter and taken before Cohaagen.
In his office, Cohaagen smugly explains to Quaid that this was all a trap. Hauser and Cohaagen devised the plan in order to trick Kuato, who could detect undercover agents. Quaid doesn't believe this, but then Cohaagen plays another video of Hauser. Hauser, with Cohaagen at his side, congratulates 'Doug Quaid' on helping to wipe out the rebels. Cohaagen orders that the air supply to a large part of Mars that aided the rebels be completely cut off.
Quaid and Melina are taken to a memory implant facility so that Hauser can be restored and Melina programmed to be subservient. During the memory programming procedure, Quaid escapes from his chair, frees Melina, and kills the technitions and all the guards. The two head down to the alien ruins. Quaid explains to Melina that Kuato helped him remember that the ruins are actually reactors that will create enough air for the entire planet, and would thus cause Cohaagen to lose control of Mars.
Quaid and Melina get to the ruins. They are attacked by Benny, who is driving a gigantic mining drilling machine. Quaid makes short work of Benny by impaling him through the cockpit with a power drill. They then find a way to the reactor, where a large platoon of soldiers, led by Richter, are waiting for them. Doug utilizes a hologram device to confuse the soldiers while he and Melina gun them all down. Richter boards a freight elevator that ascends to the ruins' control panel. Quaid jumps on and the two fight, ending with Richter having his arms ripped off and falling to his death.
Quaid makes it to the reactor control area, where Cohaagen is waiting for him; he has rigged the control facility to explode, and is just about to kill Quaid when he is shot and wounded by Melina. He activates the bomb, but Quaid throws it away before it detonates. The explosion rips a hole in the wall, causing depressurization. As Quaid and Melina hang on for dear life, Cohaagen is sucked into the atmosphere and lands in the Martian landscape, where he quickly dies from the lack of oxygen and the massive solar radiation. Quaid manages to turn the reactor on just before he and Melina are sucked into the atmosphere as well, but they are saved as the reactor releases a large amount of breathable air, which washes over the entire atmosphere. The people who were dying can now breathe freely again.
As Quaid and Melina gaze in astonishment at the Martian sky, which is now blue and clouded, Quaid wonders if he really is having a dream and if all of this is really happening in his head back on Earth at Rekall. Hearing this, Melina invites him to: "kiss me quick before you wake up." He and Melina kiss as the screen fades to white.