In World War I, the young Hercule Poirot devises a strategy to help the Allied forces reclaim land against the Central Powers, however he is unable to stop his captain's death from a booby trap, which mutilates Poirot's face. He is tended to by his lover, nurse Catherine, who encourages him to grow his mustache to hide his scars. In 1937, Poirot enters a club where jazz singer Salome Otterbourne is performing. He witnesses Jacqueline "Jackie" de Bellefort introduce her fiancé Simon Doyle to her childhood friend, heiress Linnet Ridgeway, to offer him employment. Linnet hires Simon on the spot, and sparks fly between the two to Jackie's discomfort.
Six weeks later, Poirot is vacationing in Egypt when he encounters his friend Bouc and meets his mother Euphemia, a renowned painter. Bouc introduces Poirot to his friends Linnet and Simon, who have married and are celebrating their honeymoon. The honeymoon is joined by several guests: Linnet's longtime maid Louise Bourget; Salome; Salome's niece and manager and Linnet's old classmate Rosalie; Linnet's communist-leaning godmother Marie Van Schuyler; Van Schuyler's nurse Mrs. Bowers; Linnet's cousin Andrew Katchadourian, who is in charge of Linnet's will; and doctor Linus Windlesham, who had been engaged to Linnet before she left him for Simon. Linnet and Simon request protection from Poirot as Jackie has followed them there, having become an obsessive stalker wanting to win Simon back after their engagement fell apart.
Desiring to escape from Jackie but not wanting to disrupt their honeymoon, the couple opt to board the cruise S.S. Karnak with their guests. However, Linnet admits to Poirot that she is paranoid and does not trust her guests. During a stopover at the Abu Simbel, Bouc confesses to Poirot that he is dating Rosalie, despite Euphemia's disapproval. Poirot gives him his blessing, while Bouc encourages him to find love. Poirot begins showing interest towards the charismatic Salome. Linnet and Simon narrowly evade a collapsing boulder, and after escaping a sandstorm, the guests return to the Karnak only to find Jackie had also boarded. Linnet and Simon decide to leave the following morning and share a final farewell with Poirot. An intoxicated Poirot encounters Jackie, who is still adamant in wanting to win back Simon; Poirot shares to her that he was supposed to be with Catherine after the war ended, but she died from a mortar explosion, which led to Poirot closing himself to romantic feelings. While Linnet leaves to sleep for the night, Simon confronts and insults Jackie, prompting her to instinctively shoot at his leg before immediately feeling remorse and kicking her gun away. Bouc and Rosalie bring Jackie to be tended by Mrs. Bowers, while Windlesham tends to Simon's wound.
Louise finds Linnet shot in the head the following morning and her valuable jewel necklace stolen. Poirot, joined by Simon and Bouc, begin interrogating the guests and unravel possible motivations. Jackie is ruled out as the killer due to being monitored by Bowers all night. Louise was supposed to leave Linnet's employment after getting married, but Linnet forcefully ended her engagement to keep her as her servant. Windlesham is revealed to be part of an aristocratic family, but has given up his privilege to help people as a doctor. Bowers was also from a wealthy family, but she and her workers were evicted of their lands because of Linnet's parents; Poirot deduces that she is not Van Schuyler's maid but her lover. Andrew had almost let Linnet sign a reworked contract that would have embezzled her, had it not been for Rosalie's intervention; he also possesses a larger gun. Salome has a gun similar to Jackie's in her headdress. Euphemia spots Linnet's necklace among her belongings and reports it to Poirot, who begins suspecting her as well. Jackie's gun, the murder weapon, is eventually found wrapped with Van Schuyler's missing scarf and missing two bullets.
Poirot gathers Bouc, Euphemia, Salome, and Rosalie, and reveals that he was hired by Euphemia to spy on Rosalie to see if she is a suitable love for Bouc. Despite Poirot's approval, Euphemia still denies to give them her blessing to Bouc's distress, while Rosalie berates Poirot for deceiving them. Louise is found dead in the water wheel, with her throat slit and money found among her belongings. As tension raises high among the guests, Poirot sees the shape of a possible witness near blood splatter from Louise's murder.
Poirot and Simon interrogate Bouc, who is bewildered at his own friend suspecting him. Poirot deduces that Bouc had already found Linnet dead; he stole her jewel necklace and placed it in his mother's belongings to implicate her for stealing, thus giving him and Rosalie freedom from her. He then witnessed Louise extorting money from the killer before she was killed herself and threw his coat in the river as it was coated in Louise's blood. Before he could reveal the killer, Bouc is assassinated from afar; Poirot chases after the killer and fails to catch them, only finding Andrew's gun left behind.
Motivated by the death of his closest friend, he and the crew of the Karnak lock the surviving guests in the boat's bar, having solved the murder. Poirot gets Andrew to confess that he had thrown the boulder at Simon and Linnet as an act of desperation, but he is adamant that he was not the killer. Poirot reveals that Simon is Linnet's killer, with Jackie as the mastermind. They are still lovers, as they arranged Simon's romance with Linnet so Simon would inherit her wealth once she is killed. Having pretended to shoot Simon, she managed to distract Bouc and Rosalie, while Simon used paint stolen from Euphemia to fake his injury. He used the short amount of time to kill Linnet, with Louise witnessing it, and then shot himself in the leg with Van Schuyler's scarf as a silencer in time for Windlesham to arrive. Simon later disposed of the murder weapon, while Jackie later killed Louise and Bouc. Engaged in a standoff with Poirot and Salome, Simon attempts to escape with Jackie, but Jackie, knowing there is no escape for them, shoots through both of them, killing the two lovers.
The passengers disembark, with Salome admitting that she was interested in Poirot before he showed his cold personality in his work. In London, a clean-shaven Poirot visits Salome's jazz club to watch her perform.