Santiago is an aging, experienced fisherman who has gone eighty-four days without catching a fish. He is now seen as "salao," the worst form of unlucky. Manolin, a young man whom Santiago has trained since childhood, has been forced by his parents to work on a luckier boat. Manolin remains dedicated to Santiago, visiting his shack each night, hauling his fishing gear, preparing food, and talking about American baseball and Santiago's favorite player, Joe DiMaggio. Santiago says that tomorrow, he will venture far out into the Gulf Stream, north of Cuba in the Straits of Florida to fish, confident that his unlucky streak is near its end.

On the eighty-fifth day of his unlucky streak, Santiago takes his skiff out early. By noon, he has hooked a big fish that he is sure is a marlin, but he is unable to haul it in. He is unwilling to tie the line to the boat for fear that a sudden jerk from the fish would break the line. With his back, shoulders, and hands, he holds the line for two days and nights. He gives slack as needed while the marlin pulls him far from land. He uses his other hooks to catch fish and a dolphinfish[a] to eat. The line cuts his hands, his body is sore, and he sleeps little. Despite this, he expresses compassion and appreciation for the marlin, often referring to him as a brother. He determines that no one is worthy enough to eat the marlin.

On the third day, the fatigued marlin begins to circle the skiff. Santiago, almost delirious, draws the line inward, bringing the marlin towards the boat. He pulls the marlin onto its side and stabs it with a harpoon, killing it. Seeing that the fish is too large to fit in the skiff, Santiago lashes it to the side of his boat. He sets sail for home, thinking of the high price the fish will bring him at the market and how many people he will feed.

The trail of blood from the dead marlin attracts sharks. Santiago berates himself for having gone out too far. He kills a great mako shark with his harpoon but loses the weapon. He makes a spear by strapping his knife to the end of an oar. He kills three more sharks before the blade of the knife snaps, and he clubs two more sharks into submission. But each shark has bitten the great marlin, increasing the flow of blood. That night, an entire school of sharks arrives. Santiago attempts to beat them back. When the oar breaks, Santiago rips out the skiff's tiller and continues fighting. Upon seeing a shark attempt to eat the marlin's head, Santiago realizes the fish has been completely devoured. He tells the sharks they have killed his dreams.

Santiago reaches shore before dawn the next day. He struggles to his shack, leaving the fish head and skeleton with his boat. Once home, he falls into a deep sleep. In the morning, Manolin finds Santiago. As he leaves to get coffee for Santiago, he cries. A group of fishermen have gathered around the remains of the marlin. One of them measures it at 18 feet (5.5 m) from nose to tail. The fishermen tell Manolin to tell Santiago how sorry they are. A pair of tourists at a nearby café mistake the dead fish for a shark. When Santiago wakes, he donates the head of the fish to Pedrico. He and Manolin promise to fish together once again. Santiago returns to sleep, and he dreams of his youth and of lions on an African beach.