The film begins with a meeting between wealthy heiress Linnet Ridgeway (Lois Chiles) and her close friend Jacqueline de Bellefort (Mia Farrow). Jackie wants her fiancé, Simon Doyle (Simon MacCorkindale), to work for Linnet, but he and Linnet have a whirlwind affair and end up marrying. While honeymooning in Egypt, they are continually hounded by the jilted Jackie. In an attempt to get away, the Doyles board a Nile paddle steamer, the S.S. Karnak.
When the passengers venture on-shore to examine a nearby temple, a large stone is pushed off a pillar and narrowly misses Simon and Linnet. They again encounter Jackie, who boards the ship and ignores the warnings of detective Hercule Poirot (Peter Ustinov) to stay away, revealing that she carries a small pistol. After a late-night game of cards in the ship's lounge, Jackie confronts Simon. In a drunken rage she fires and shoots him in the leg. The next morning, Linnet Ridgeway is discovered murdered in her cabin, shot in the head by a similar weapon, with almost everyone aboard the Karnak having had a reason to want to do away with the heiress. The pistol has meanwhile gone missing.
Jackie is a natural suspect but has a perfect alibi, having been given morphine and observed by Miss Bowers all night (Alcohol and Morphine would, in Nurse Bowers's words, sink the Titanic). Simon Doyle was also unable to commit the crime due to his leg wound. Poirot is convinced someone on deck overheard the argument, removed the gun and used it to kill Linnet.
A bundle had been found in the Nile. The missing pistol is wrapped in Mrs. van Schuyler's stole, which was apparently used to muffle the sound of a gunshot and prevent scorching, as seen around Linnet's injury. A handkerchief was also included, stained with red ink, some of which was found in Linnet's pearl nail-varnish bottle.
While Poirot and Race conduct their investigation, the maid Louise is murdered. Her throat has been cut with one of Dr. Bessner's scalpels and a fragment of a banknote is found in her hand. Poirot realises she probably saw the murderer coming out of Linnet's cabin and attempted to extort money in return for her silence. Salome Otterbourne claims to have seen Louise's murderer and is about to tell Poirot when she is shot in the head through an open cabin door with Pennington's revolver, too large to have been used on Linnet.