Den gamle mand Santiago bor i en lille fiskerlandsby på Cuba og fisker helt alene. Sidste gang tilbragte han 84 dage til søs, men fangede ikke noget. Tidligere plejede en dreng, Manolin, at fiske med ham, som hjalp den gamle mand meget, men drengens forældre besluttede, at Santiago var uheldig og bad hans søn om at gå i havet på en anden båd.
Den gamle mand lærte Manolin at fiske, og drengen elsker Santiago, vil gerne hjælpe ham. Han køber sardiner til agn, bringer mad til hytten. Den gamle mand er længe nået med sin fattigdom.
Han var for simpelt til at tænke over, da ydmygheden kom til ham. Men han vidste, at ydmyghed var kommet uden at bringe hverken skam eller tab af menneskelig værdighed.
De taler med drengen om fiskeri og berømte baseballspillere. Om natten drømmer den gamle mand om Afrika i sin ungdom og "løver, der går i land."
Tidligt næste morgen fisker den gamle mand. Drengen hjælper ham med at bære sejlet og forberede båden. Den gamle mand siger, at han denne gang "tror på held."
Den ene efter den anden sejler fiskerbåde fra kysten og går til søs. Den gamle mand elsker havet, han tænker på det med ømhed som en kvinde. Efter at have koblet en lokkemad svømmer Santiago langsomt med strømmen og kommunikerer mentalt med fugle og fisk. Den gamle mand er vant til ensomhed og taler højt med sig selv.
Før alene sang han; undertiden sang han selv om natten, på vagt, når han gik på store sejlbåde eller jagede skildpadder.
Den gamle mand kender forskellige indbyggere i havet og behandler dem meget forsigtigt.
Først fanger Santiago en lille tun. Han håber, at der ved siden af en flok tun findes en stor fisk, der kan lide dens sardiner. Snart bemærker den gamle mand en lille rysten af en fleksibel grøn stang, der erstatter hans fiskestang. Fiskeriet går ned, og den gamle mand føler den enorme vægt af den bidende fisk.
Den gamle mand forsøger at trække en tyk fiskelinje op, men det lykkes ikke - en stor og stærk fisk trækker en let båd sammen med ham. Den gamle mand beklager, at der ikke er nogen dreng med ham - han kunne have fjernet agnet fra andre stænger, mens Santiago kæmper mod fisken.
Det tager cirka fire timer. Aftenen nærmer sig. Den gamle mands arme er indrykket, han kaster fiskelinjen på ryggen og lægger en pose under den. Nu kan Santiago læne sig mod bådens side og slappe af lidt.
Det er umuligt for en person at blive alene i alderdom ... Dette er dog uundgåeligt.
Nat. Fiskene trækker båden længere fra kysten. Den gamle mand er træt, men tanken på en fisk forlader ham ikke et øjeblik. Nogle gange synes han synd på hende - fisken, så stor, stærk og gammel, må dø for at han kan leve videre. Santiago taler til fiskene: "Jeg vil ikke skille dig, før jeg dør."
Den gamle mands styrke er ved at løbe ud, og fisken bliver ikke træt. Santiago spiser tun ved daggry - han har ingen anden mad. Den gamle mands kramper i venstre hånd. Den gamle mand håber, at fiskene kommer frem, og så kan han dræbe hende med en harpun. Endelig går skoven op, og en fisk vises på overfladen. Hun brænder i solen, hendes hoved og ryg er mørk lilla, og i stedet for næsen er et sværd, så længe en baseballballtre. Hun er to meter længere end båden.
Alene, i det åbne hav, var han fast knyttet til en så stor fisk, som han aldrig havde set, som han aldrig engang havde hørt om.
Vises på overfladen, går fisken igen ned i dybet, trækker båden langs, og den gamle mand samler styrke til at holde den. Han tror ikke på Gud og læser vores Fader.
En anden dag går. For at distrahere sig selv husker den gamle mand baseball-spil. Han minder om, hvordan han engang målte sin styrke i en taverne i Casablanca med en magtfuld sort mand, den stærkeste mand i havnen, hvordan de sad en hel dag ved bordet uden at miste deres hænder, og hvordan han endelig fik det bedre af ham. Han deltog i lignende kampe mere end én gang, vandt, men kastede derefter denne sag og besluttede, at han havde brug for højre hånd til fiskeri.
Kampen med fiskene fortsætter. Santiago holder skoven med sin højre hånd, vel vidende, at når kræfterne løber ud, vil venstre erstatte hende, hvor krampen længe er gået. En makrel kommer over en lille fiskestang. Den gamle mand styrker sin styrke med det, selvom denne fisk er fuldstændig smagløs. Han er ked af den store fisk, der ikke har noget at spise, men beslutningen om at dræbe hende herfra falder ikke.
Det er så godt, at vi ikke behøver at dræbe solen, månen og stjernerne. Det er nok, at vi udpresser mad fra havet og dræber vores brødre.
Om natten kommer fiskene til overfladen og begynder at gå i cirkler, enten nærmer sig båden eller bevæger sig væk fra den. Dette er et tegn på, at fisken er træt. Den gamle mand forbereder en harpun for at afslutte fisken. Men hun går til side. Fra træthed forvirres tanker i den gamle mand, og sorte pletter danser foran hans øjne. Santiago samler den resterende styrke og sætter harpunen på fisken i siden.
Og så kom fiskene til live, selvom den allerede bragte døden inden i sig selv - den steg højt over vandet, som om han prale med sin enorme længde og bredde, al dens skønhed og kraft.
At overvinde kvalme og svaghed, binder den gamle mand fisk ved siden af båden og drejer mod kysten. Vindens retning fortæller ham, hvilken vej han skal svømme for at komme til huset.
En time går, før den første haj, der har sejlet efter lugt af blod, vises. Hun nærmer sig akterenden og begynder at rive fisken med tænderne. Den gamle mand slår hende med en harpun på det mest sårbare sted på kraniet. Hun synker ned i bunden og trækker en harpun, en del af rebet og et stort stykke fisk
Santiago dræber yderligere to hajer med en kniv bundet til en åre. Disse hajer tager mindst en fjerdedel af fiskene med sig. På den fjerde haj bryder kniven, og den gamle mand trækker en stærk klub ud.
Han vidste, at hver haj, der skubbede på en båd, betød et stykke revet kød, og at fisken nu efterlod et mærke på havet, bredt som en motorvej, og tilgængelig for alle hajer i verden.
Den næste gruppe hajer angriber båden inden solnedgang. Den gamle mand driver dem væk med slag af batoner på hovederne, men om natten vender de tilbage. Santiago kæmper først med rovdyr med en stafet stafetteknap, derefter med et skarpt fragment af en rorkult. Endelig svømmer hajer væk: de har intet mere at spise.
Den gamle mand kommer ind i bugten ved sin hytte sent om aftenen. Efter at have fjernet masten og bundet sejlet, vandrer han til huset og føler en utrolig træthed. Et øjeblik drejer den gamle mand sig og ser en enorm hale med fisk og en afspejling af en hvid ryg bag aktern på sin båd.
En dreng kommer til den gamle mands hytte. Santiago sover. Drengen græder, når han ser sine sårede håndflader. Han bringer den gamle mand kaffe, beroliger ham og forsikrer os om, at de fra nu af vil fiske sammen, fordi han stadig har meget at lære. Han tror, at han vil bringe lykke til den gamle mand.
Om morgenen er fiskere forbløffet over resterne af en gigantisk fisk. Rige turister kommer i land. De er overraskede over at se en lang hvid rygsøjle med en enorm hale. Tjeneren forsøger at fortælle dem, hvad der skete, men de forstår ikke noget - de er for langt fra dette liv.
Og den gamle mand sover på dette tidspunkt, og han drømmer om løver.