Plot
Flashback to Belgium at the Yser Bridge on October 31, 1914, in the front lines of World War I. Hercule Poirot's captain has been given a mission considered certain death for all of his men. Poirot suggests his captain follow a strategy that will accomplish the mission safely. It succeeds, but when his captain steps on a mine, Poirot is caught in the explosion. His fiancée Katherine visits him in the hospital, who reassures him that she still loves him despite his facial injury and that he can grow a moustache to conceal it.
In 1937, at a London club, Poirot watches blues singer Salome Otterbourne perform. He notices Jacqueline "Jackie" de Bellefort introducing her fiancé Simon Doyle to her childhood friend heiress Linnet Ridgeway. After meeting Simon, Linnet agrees to hire him as her land agent.
Six weeks later, in Egypt, Poirot encounters his friend Bouc with Bouc's mother Euphemia, all of whom attend the wedding of Linnet and Simon. Others join their honeymoon trip: Linnet's maid Louise Bourget; Salome and her niece/manager Rosalie, Linnet's schoolfriend; Linnet's godmother Marie Van Schuyler with her nurse Mrs. Bowers; Linnet's financial manager and cousin Andrew; and Linnet's former fiancé Dr. Linus Windlesham. Jackie has also stalked the couple to Egypt and continues to follow the couple around.
To escape Jackie, the group boards the cruise ship S.S. Karnak. Linnet asks Poirot for protection from Jackie and confesses that she distrusts her guests. Bouc reveals he is dating Rosalie, despite his mother's disapproval, and teases Poirot about his attraction to Salome.
The party disembarks from the Karnak to visit the Abu Simbel Temples. After a boulder falls off a column and nearly crushes Linnet and Simon, the guests return to the Karnak to discover Jackie has boarded. When Linnet goes to sleep, Simon confronts her, who shoots him in the leg. When she attempts to shoot herself, Rosalie and Bouc intervene, taking Jackie to Mrs. Bowers. Windlesham treats Simon.
The following morning, Louise discovers Linnet has been shot in the head and her valuable necklace has been stolen. Poirot, assisted by Bouc, interrogates the guests, each of whom bears a vendetta against Linnet or would benefit from her death. The area around the boat is dredged and the murder weapon is found, wrapped in Van Schuyler's scarf. Poirot also reveals that Euphemia hired him to investigate Rosalie. When Rosalie storms off, she discovers Louise's body with money and her throat slit. Poirot suspects Louise blackmailed Linnet's killer.
Poirot and Simon interrogate Bouc. He found Linnet dead and stole her necklace to gain financial freedom from his mother, but panicked, putting it in Euphemia's belongings. Bouc witnessed Louise's murder, but before as he is about to reveal the killer, he is fatally shot through the throat. Poirot chases the hooded killer, who escapes, leaving behind only the gun.
Locking the remaining guests in the boat's saloon, Poirot reveals that Simon killed Linnet, with Jackie as the mastermind. They are still lovers and arranged Simon's romance with Linnet to inherit her wealth. Simon drugged Poirot's champagne, and Jackie shot a blank at Simon, who faked his injury with paint stolen from Euphemia. While Jackie distracted Bouc and Rosalie, Simon killed Linnet, returned to the saloon, and shot his own leg, muffled by the scarf. Jackie later killed Louise with Windlesham's scalpel and Bouc with Andrew's gun.
A final piece of evidence is the handkerchief used in the fake shooting, recovered along with the gun, which has faded to pink instead of brown, proving the stains are not blood. Faced with Poirot's irrefutable proof, Jackie embraces Simon, shooting him through the back and thus killing them both with one shot. As the passengers disembark, Poirot is unable to voice his feelings to Salome.
Six months later, a clean-shaven Poirot visits Salome's club to watch her rehearse.