At the end of 21st Century, the Earth is divided into two territories the United Federation of Britain (UFB) and the Colony (formerly Australia) after chemical warfare devastates the remainder of the planet. Many residents of the Colony travel to the UFB to work in their factories via "the Fall", a gravity elevator, which travels through the Earth. Habitable space is at a minimum in both the UFB and the Colony.
A factory worker named Douglas Quaid (Colin Farrell) decides to visit Rekall, a company that implants artificial memories. Rekall employee McClane (John Cho) convinces Quaid to be implanted with memories of a secret agent.
Quaid is tested to avoid having implanted memories conflicting with real memories, and McClane discovers that Quaid has real memories being a spy. McClane and his co-workers are suddenly gunned down by a SWAT team.
While Quaid is being arrested, he instinctively reacts and kills the officers before escaping. Quaid returns home to his wife Lori (Kate Beckinsale) and confesses what has transpired. Lori attempts to kill Quaid, revealing that she is not his wife of seven years, but an undercover UFB agent who has been monitoring him for the past six weeks.
Quaid manages to escape, and Hammond (Dylan Smith), a man claiming to be a former associate, contacts Quaid via a cell phone embedded in Quaid's hand, disclosing the location of a nearby safe-deposit box. Quaid cuts the cell phone out of his hand to avoid being traced.
In the safe-deposit box, Quaid discovers a recorded message from his former self, leading him to an apartment in UFB. On the way, Quaid meets Melina (Jessica Biel), the woman from his dreams. At the apartment, Quaid uses a piano to trigger a second recorded message.
The recording reveals that Quaid was formerly Carl Hauser, a highly skilled agent working for Chancellor Vilos Cohaagen (Bryan Cranston). After joining the resistance movement, Hauser was captured and implanted with false memories of life as a factory worker.
The recording reveals a plot by Cohaagen's administration to use its synthetic police force to invade the Colony to provide more living space for UFB, but that Hauser had seen a code that could stop the robotic forces. It is still in Quaid's memory, and can be recovered with the aid of resistance leader Matthias (Bill Nighy). Melina reveals that she was Hauser's lover, but the two were separated when Hauser was captured.
Tracked to the apartment by the police, Quaid and Melina find themselves surrounded. Quaid's friend and colleague from the Colony, named Harry (Bokeem Woodbine), arrives and tries to convince Quaid that he is in a Rekall-induced dream and that killing Melina is the only way to wake up.
Quaid is conflicted, but seeing a tear in Melina's eye, he concludes that he is not dreaming and kills Harry. Quaid flees with Melina to the Resistance headquarters, where Matthias attempts to recover the code from Quaid's mind.
Accessing Quaid's memories reveals that the code was a plot to allow Cohaagen to locate Matthias. Cohaagen and his forces arrive, kill Matthias, and capture Quaid and Melina. Cohaagen plans to erase Quaid's personality and restore the memories of his loyal agent Hauser.
Quaid is able to escape with the aid of Hammond, who has infiltrated Cohaagen's forces, but Hammond dies in the process. Quaid infiltrates the Fall where Quaid finds Cohaagen's robotic forces in stasis. He plants time-detonation bombs aboard the Fall before rescuing Melina.
He and Melina are pursued by Cohaagen's forces and ultimately end up on top of the Fall as it lands in the Colony. Quaid and Melina fight Cohaagen and his forces, and manage to escape the Fall when the bombs detonate. The Fall is destroyed, incinerating Cohaagen in the process.
Quaid wakes up in an ambulance and is greeted by Melina, but he notices the absence of an old gunshot wound on her hand and realizes it is Lori in disguise. Quaid manages to disarm and kill Lori.
Quaid and Melina are reunited and embrace as he remembers that the Rekall worker put a peace sign symbol on his forearm before injecting him with the dream chemicals. He pulls off a bandage to reveal that there is no peace sign symbol on his forearm. Melina asks him what's wrong and he replies nothing. A Rekall billboard plays in the background.