Stary rybak Santiago mieszka samotnie nad brzegiem morza w Hawanie, w nędznej chacie.

Od osiemdziesięciu czterech dni nie złowił ani jednej ryby. Często pływał z nim po morzu jego przyjaciel, chłopiec imieniem Manolin. Santiago osiemdziesiąty piąty raz wypływa na morze, marzy o wielkiej rybie, która przyniesie mu znaczny zarobek i pozwoli poprawić jego złą sytuację materialną. Płynąc spotyka najpierw ławicę delfinów. Następnie udaje mu się złowić tuńczyka, nadającego się na przynętę dla większej ryby. Wreszcie jedną z przynęt, zarzuconą głęboko w wodzie, połyka marlin, nabijając się na hak. ryba jest ogromna, większa od łodzi. Silny marlin ciągnie łódź rybaka przez cztery godziny, nie zmieniając kursu ani kierunku. Santiago czuje się bardzo samotny i rozmyśla. Przypomina sobie dzień, w którym razem z chłopcem złapali marlina-samicę. W pewnym momencie ryba holująca łódź, szarpie linkę trzymaną przez rybaka i Santiago rozcina sobie skórę pod okiem. Rybak rozmawia z małym drozdem. Oznajmia mu, że ryba, którą musi zabić, jest jego przyjacielem. Po pewnym czasie marlin szarpie się ponownie, rozcinając rybakowi dłoń. Santiago pożywia się surowym mięsem tuńczyka i rozmyśla. Kiedyś w Casablance brał się na rękę z murzynem - najsilniejszym człowiekiem w porcie i zwyciężył. Następnie Santiago łowi delfina i rozmawia z marlinem. Uważa go za swojego przyjaciela i jest mu przykro, że musi go zabić. Ryba zaczyna się wreszcie wynurzać. Santiago przyciąga linę do siebie, zmniejszając średnicę koła, po którym marlin krąży. Ryba holuje go już po morzu przez dwa upalne dni i dwie noce. Santiago jest bardzo zmęczony. Rozmyśla i modli się do Boga. Stary rybak zbiera siły i kiedy marlin przybliża się ku jego łodzi, wbija harpun w jego bok, trafiając w serce, ale czuje, że mu słabo i w oczach ciemno. Gdy wraca do przytomności, ryba już nie żyje. Ponieważ marlin jest bardzo duży i nie mógłby się zmieścić w łodzi, Santiago przymocowuje go do burty i płynie z nim w kierunku Hawany. Po godzinie w zdobycz jego uderza kłami pierwszy rekin, zwabiony zapachem krwi. Santiago zabija drapieżnika. Rybak wie jednak, że zapach krwi rozchodzi się w wodzie i zaraz przypłyną następne rekiny. Tak też się dzieje. Rekiny atakują marlina, pożerając rybę do reszty. Pozostaje już tylko szkielet. W nocy rekiny atakują również szkielet, ale Santiago nie zwraca już na to uwagi i w końcu dociera do przystani. Wczesnym rankiem przychodzi do jego chaty chłopiec i płacze na widok rąk przyjaciela. Przynosi rybakowi kawę i czeka, aż ten się obudzi. Rybacy oglądają na brzegu morza szkielet wielkiej ryby, mierzą jej długość. Podziwiają starego rybaka i pilnują jego łodzi oraz sprzętu. W rozmowie z chłopcem Santiago dowiaduje się, że był poszukiwany przez straż nadbrzeżną i samoloty. Manolin oznajmia mu, że teraz znowu będą łowili razem, wbrew woli rodziców, bo musi się jeszcze dużo od niego nauczyć. Santiago znów zasypia i śni o lwach, a chłopiec mu towarzyszy.