London, 1949. Honoré Lechasseur is an expatriate American GI, badly injured during the war but now virtually recovered; he sometimes has glimpses or impressions of the past and future when he looks at people or objects, but doesn’t know what to make of these visions. He now works as a “fixer,” someone who walks the borderline of legality to get people what they need even in times of rationing. He’s not a detective; nevertheless, a woman who identifies herself as Emily Blandish hires him to find her missing husband, who has apparently vanished into London’s seedy underworld. She won’t or can’t give her husband’s name or even describe him, and refers to him only as “the Doctor.” She gives Honoré a key which will identify him to the Doctor when the time comes, and Honoré, intrigued, decides to take the case.
The investigation proves difficult. Honoré’s first real lead comes from an antiquarian named G. Syme, who is convinced that the Doctor is a legendary trickster figure who doesn’t really exist; he even appears in cave paintings which imply that he’s the one who introduced fire and the patriarchal principle to the human race. Nevertheless, Syme admits that someone else is looking for the Doctor, and directs Honoré to the Inferno, a seedy nightclub in Covent Garden where disillusioned brownshirts watch the magician Eric Walken perform occult magic with a Nazi twist. Walken greets Honoré with contempt and refuses to answer his questions, but Honoré breaks back into the nightclub later, and finds newspaper clippings about the “girl in pink pyjamas,” a woman who walked out of the fog some weeks ago with no memory of her past. He also overhears Walken telling someone that the Doctor visited the nightclub that day -- and that Walken and his cronies must therefore delay their plan to kidnap the girl in pink pyjamas.
Honoré returns home to think about what he’s learned, but is kidnapped by three thugs who take him to a manor house inhabited by a woman named Mestizer. Mestizer looks Honoré over and loses interest almost at once, realising that, despite his aura, he’s not the man she’s been looking for. Assuming that Honoré is working for Walken, she orders him to tell Walken that she has the cabinet of light and will kill anyone who tries to take it from her. Her lieutenant, a hulking figure named Abraxas who speaks in a buzzing, mechanical voice, takes Honoré back to is flat, and warns him that he will tear Honoré apart if he interferes further.
The next day, Honoré visits the girl in pink pyjamas, and notices that someone, whom he assumes to be one of Walken’s spies, is watching her house. The girl’s landlady, Mrs Beardsley, is charging visitors for the opportunity to speak with her mysterious boarder. At first, the girl assumes that Honoré is like all her other visitors, who want to exploit her in some way or another; however, she soon realises that he’s more gentle and is genuinely concerned for her. She claims to remember nothing of her past, and Honoré finds himself telling her all about his own life. When he tells her about his current job and mentions his client’s name, the girl in pink pyjamas finds it shockingly familiar and realises that it’s her own; she, not Honoré’s client, is the real Emily Blandish. Before she can remember anything else, Mrs Beardsley, afraid that Honoré will take her tenant from her, has her son beat him and expel him from the house. Honoré realises that Mrs Beardsley has been mistreating Emily as well, but there’s nothing he can do until Emily decides to leave of her own accord.
Honoré decides to report to his client and find out what she’s been hiding from him, but finds her cowering in her flat, frightened and armed against intruders. When he makes his report, she dismisses Walken as a cheap, tawdry occultist with ideas above his station. She admits that her real name is Enid Cross, though her stage name is Miranda Sessions; someone else told her to use the name Emily Blandish when she hired Honoré, but she won’t tell Honoré who it was. All she will say is that she’s gone behind Mestizer’s back to help him, and that now she fears reprisals. Abraxas then breaks in to take Miranda away, and when Honoré tries to shoot him, the bullets have no effect; beneath his trenchcoat, Abraxas is an organic/mechanical hybrid. Miranda shoots herself rather than let Abraxas take her, and Abraxas contemptuously departs, leaving Honoré shattered by his failure to save Miranda.
Honoré sinks into despair, and wonders whether the time has come to stop being a fixer and take on a new role in life. A few days later, a new role is thrust upon him when masked men kidnap him and deliver him to Walken, who believes that Honoré himself is the Doctor. Honoré plays along, realising that it might dangerous to convince Walken otherwise. Walken seems to regard the Doctor as an enemy worthy of respect and fear, and he reveals that he intends to steal the Doctor’s magical cabinet of light, an act which he believes will rob the Doctor of his powers and enable Walken to become the Doctor himself. Walken takes the key which Miranda had given to Honoré when she hired him, and gives it to his mistress Amber for safekeeping.
That night, Walken closes the nightclub and assembles his associates for a séance. Amber will act as the medium, focussing their mental energy in an attempt to spirit the cabinet of light out of Mestizer’s manor and directly into the nightclub. The attempt nearly succeeds, but at the last moment, Amber breaks the circle and the club’s waitresses turn on Walken and his cronies, gunning them down. Mestizer has bested Walken, conditioning the waitresses to obey her rather than him. Honoré flees for his life, abandoning the key, as the Inferno bursts into flames behind him. Abraxas and Mestizer are waiting outside, but Honoré manages to escape with the help of the man he saw watching the Beardsley home earlier... a man who now identifies himself as the Doctor.
The Doctor takes Honoré to his hideout, an abandoned toy shop which it’s said once belonged to a mysterious Oriental named Mr Sun. There, the Doctor admits that he’s been watching Honoré for some time, and Honoré realises that the Doctor himself had Miranda hire him. The Doctor reveals that Honoré is time-sensitive; his occasional visions are genuine glimpses into the past and future. The Doctor himself arrived in London some time ago, but he was attacked by Mestizer’s agents and his property was stolen. Emily helped him to escape, but lost her memory in the process. Mestizer’s agents have been searching for the Doctor ever since, and Miranda, albeit unwittingly at first, was one of them. She erroneously identified Honoré as the Doctor because of his time-sensitivity, and since Honoré was about to become involved anyway, the Doctor convinced Miranda to hire Honoré to search for him. Honoré’s involvement has distracted Mestizer’s agents and stirred things up, giving the Doctor the chance to catch her off guard and reclaim his property -- but he also wanted Honoré involved for another reason, which Honoré should be able to figure out for himself.
The Doctor reveals that he has another key to his cabinet, and that the one which passed from Miranda to Honoré -- and which Amber has now undoubtedly delivered to Mestizer -- is a spare. He is saddened to hear that Miranda shot herself, as he believes that he could have rescued her if she’d trusted him and allowed herself to be captured. Honoré isn’t quite sure whether to trust the Doctor, and his attempt to “read” him with his newly understood time-sensitivity overloads his senses with more information than he can handle. The Doctor sets off to confront Mestizer, but Honoré, refusing to let the Doctor walk out of his life with so many unanswered questions, picks the Doctor’s pocket and steals the key to his cabinet, intending to follow him and learn what’s really going on.
Honoré steals a car from outside the Inferno and returns to Mestizer’s manor, where he finds the two thugs who kidnapped him earlier beating a figure in a sack. Fearing that the figure is Emily, he confronts the thugs and kills them in a fight, using his time-sensitivity to intuit where their blows will land before they strike him. The figure in the sack turns out to be Walken, who is beyond help but dies believing that the Doctor saved him.
Honoré enters Mestizer’s manor, and senses that he’s travelling backwards in time the deeper he goes into the house. In the depths of the manor, he finds alien monsters dressing up for some special occasion, and sees the Doctor confronting Mestizer over a vast machine where things like Abraxas toil amongst the cogwheels. He also finds the Doctor’s cabinet of light, and is initially disappointed to realise that it’s nothing more than a police box. He uses the stolen key to open it, but is confronted by a gun-wielding Amber before he can enter. However, light then begins to bleed out of the police box, and Mestizer’s machine explodes. Did the Doctor sabotage it, or is it reacting against the power from inside the Doctor’s cabinet?
Honoré realises that the police box is only a mask for the cabinet of light, and he flees as the Doctor and Mestizer struggle behind him. The light from the police box consumes the house, which vanishes in a burst of energy moments after Honoré escapes. The Doctor and Mestizer are gone, but they’ve left loose ends behind -- and Honoré finally realises why the Doctor really hired him. Abraxas is on his way to kill Emily, the only surviving witness to the events here. Emily has finally had enough of Mrs Beardsley’s treatment and has fled from her house, but Abraxas tracks her down; however, Honoré uses his time sensitivity -- a trait which Emily seems to share -- to locate him before he can kill Emily. Honoré fights Abraxas, finds a weak point in his mechanical armour, and tears a fatal wound in the organic mass beneath. Emily helps Honoré to dump the body in the Thames, and as it floats away, Honoré and Emily return to London together, knowing that the Doctor needs to leave people behind to deal with things when he can’t be there himself.