Agatha, a bestselling novelist with Stage 3C melanoma and severe depression, boards the 6:40 a.m. business-class train from Toronto to Montreal on a late-December morning during a worsening blizzard. Her husband, Teddy, a restaurant owner, gave her the ticket as a Christmas gift, framing it as a writing retreat. Agatha, a former bank manager who quit after the success of her first novel, has told Teddy she plans to write during the ride and meet an old friend for lunch. In truth, she intends to meet Dev, a college acquaintance whose contact she has disguised under the name Malee, at a Montreal hotel for an extramarital affair, a desperate attempt to break through the emotional numbness that has consumed her since her diagnosis. That morning, Teddy intercepts her at the front door and insists she say goodbye to their young son, Freddie, nearly derailing her carefully planned escape.
The business-class car holds only a handful of passengers. Agatha takes Seat 1D and meets Dorcas, the cheerful customer-service agent who is training a new employee. Other passengers include Vivien, a protective mother, and her university-aged son Rupinder; and Jeff, a large, weathered older man. Just before departure, Finch Weatherby, a wealthy retired management consultant, boards while shouting into his phone about a contentious divorce. He demands Agatha swap seats so he can have the window. She refuses but later moves across the aisle to escape his relentless talking, giving him Seat 1D.
While reaching into the overhead bin, Agatha spots Cyanne Candel in Row 4. Cyanne is a yoga influencer whom Agatha has known since Cyanne was a teenager. Agatha's bestselling debut features a protagonist with Cyanne's exact name and life details: a brunette yoga influencer who murders her wealthy husband. Cyanne has spent months sending Agatha threatening messages. Agatha discovers that Teddy inadvertently revealed her travel plans in a public Instagram post that Cyanne follows, explaining Cyanne's presence on the train.
As the blizzard intensifies, the train makes an emergency stop near Cobourg, Ontario, roughly halfway between Toronto and Montreal. The power drops to emergency levels, cell phones lose signal, and the Wi-Fi dies. Dorcas informs the passengers that the doors between cars have auto-locked. They are trapped. Cyanne confronts Agatha in the aisle, grabbing her wrist and accusing her of stealing her life. The sudden halt throws both women to the floor.
Hours pass. Dorcas periodically retreats to the galley phone and returns with reassurances that help is coming. Agatha notices that the trainee left the car before the stop and never returned. When Dorcas tries to cover the apparently sleeping Finch with a blanket, she nudges him and he slumps over. Finch is dead. While Jeff lifts the body, they discover the cause: a funnel-web spider, an Australian species whose venom can kill within minutes, trapped in a mesh bag wedged into the seat so that only the occupant of 1D would be bitten. Agatha recognizes the species and realizes the killing was deliberate. Seat 1D was originally hers; the intended victim was Agatha, not Finch.
Meanwhile, Vivien reveals that Rupinder has Type 1 diabetes and his insulin pump has been malfunctioning. He forgot to pack backup vials, and his father waits in Montreal with supplies they cannot reach. Rupinder deteriorates rapidly, suffering two seizures. Agatha searches Finch's briefcase for insulin and instead finds a letter to his ex-wife in which Finch declares he burned off his own thumbprint, the biometric key to a household safe, rather than let her access its contents. The thumb injury is self-inflicted, but the spider is not his doing.
The fragile truce shatters when Agatha urges Vivien to use the galley phone herself. Vivien picks up the handset and hears nothing. The line is dead and has been all day. Dorcas fabricated every phone call and every promise of incoming help. She claims she lied to prevent panic. Jeff, enraged, crushes the spider under his boot. The group confines Dorcas to the front row.
As Rupinder worsens, Dorcas attempts to approach Cyanne to bandage a cut on her hand, reaching for the jagged neck of a broken vinegar bottle to move it to safety. Vivien, believing Dorcas is the murderer and perceiving a threat to her son, grabs the glass and plunges it into Dorcas's throat, killing her.
Agatha uses the emergency hammer to break a window. She, Jeff, and Cyanne climb into the snow. In the gap between train cars, Jeff discovers the trainee's discarded uniform and boot prints from Blundstone boots. The trainee planted the spider and fled, which means Dorcas was likely innocent and Vivien killed a blameless woman. Agatha and Cyanne agree to conceal this discovery from Vivien.
Jeff volunteers to trek through the storm to find help. Moments after he sets out, the train's power returns and it lurches forward, leaving Jeff stranded in the blizzard. Inside the car, Agatha and Cyanne hide Dorcas's body under blankets and construct a cover story in which Finch attacked Dorcas before dying of the spider bite. Agatha calls for help on the now-functional galley phone.
Shawn, a customer-service agent from another car, arrives with insulin donated by a fellow passenger. He explains that the auto-locks were overridden elsewhere hours earlier, but no one could reach business class because Dorcas never flipped the manual override. Vivien injects Rupinder, and the train continues to Kingston, where paramedics take him off on a stretcher.
During the wait for police questioning, Agatha pieces together the truth. A matchbook from The Riv, Teddy's restaurant, turns up in the pocket of Finch's coat, which Agatha had borrowed for warmth. The boot prints outside the train had a worn-down left heel matching a leg-length discrepancy Teddy has always denied. His text messages were perfectly timed and geographically tagged to Toronto, and a voicemail from Freddie's day care reveals Teddy was late for pickup. Teddy disguised himself as the trainee, planted the spider in Seat 1D, and fled. He orchestrated the crisis to shock Agatha out of her emotional paralysis, inspired by a true-crime story she had been researching: the case of Genevieve, a McGill University student whose assailant was murdered by an unknown gunman. Teddy had identified the likely killer as the victim's sister, someone who would kill to save the person she loves.
Detective Brian Pete, an older Kingston officer overwhelmed by storm-related emergencies, accepts Agatha's rehearsed narrative in thirty minutes. She learns Jeff has not been found and is unlikely to survive. Agatha stays two nights in a Kingston hotel, writing 25,000 words of a new novel, the first sustained creative work since her diagnosis. She calls Teddy and tells her mother he was with her, maintaining his alibi.
On New Year's Eve, Agatha returns home. Teddy greets her with scotch. She weeps over sleeping Freddie for the first time since her diagnosis. Teddy references electroshock therapy, which Agatha had once researched for her depression, and says he is glad they found another kind of shock to bring her back. Agatha understands: Teddy was not trying to kill her. He was trying to save her. Whether he intended Finch's death or foresaw the deaths of Dorcas and Jeff remains unresolved. For the first time since her diagnosis, Agatha initiates physical intimacy with Teddy. She is still going to die, she acknowledges, but until then, she is going to live.