Stary Santiago był najlepszym rybakiem w swojej wiosce, a może nawet na całek Kubie, lecz od osiemdziesięciu czterech dni nie złowił żadnej ryby, którą mógłby sprzedać na targu. Mieszkańcy osady byli przekonani, że prześladuje go wielki pech, dlatego nadali mu pseudonim salao (pechowiec) i w obawie o własne szczęście odsunęli się od niego. Jedyną osobą, która wiernie trwała przy rybaku był chłopiec imieniem Manolin. Właśnie jemu starzec wyznał, że zamierza wypłynąć bardzo głęboko w morze, by tam szukać swojego szczęścia i wielkich ryb.
Następnego poranka, Santiago z pomocą chłopca oporządził łódź i razem z innymi rybakami wypłynął na morze. W odróżnieniu od kolegów po fachu, starzec odpłynął tak daleko, że z czasem stracił horyzont z zasięgu wzroku. Po kilku godzinach jedną z jego przynęt chwyciła ryba tak wielka, że doświadczony rybak nie mógł uwierzyć w jej rozmiary.
Marlin z łatwością holował łódkę Santiago przez wiele godzin, zaciągając ją wiele mil w głąb morza. Rybak nawet nie próbował walczyć z rybą, ponieważ od razu zdał sobie sprawę, że dopóki ta się nie zmęczy, to nie ma z nią żadnych szans. Mądry starzec zwracał się do marlina z wielkim szacunkiem i podziwem. Z niecierpliwością czekał, aż ryba wyskoczy nad powierzchnię wody, ponieważ nie mógł doczekać się jej widoku. Ponadto wówczas nabrałaby ona pęcherzy powietrza i mogłaby zanurzyć się w głębiny, co oznaczałoby zerwanie linki.
Holowanie było niezwykle wyczerpujące dla bohatera. Jego stare dłonie obficie krwawiły od tarcia linki, a w dodatku nękały go skurcze. Nagle, po kilku godzinach zmagań, marlin wyskoczył w górę i ukazał się rybakowi w pełnej okazałości. Santiago z przerażeniem i zachwytem zorientował się, że ma do czynienia z rybą większą niż jego łódka.
Osamotniony Santiago poszukiwał motywacji do stoczenia morderczego pojedynku z wielką rybą. Początkowo zwrócił się z prośbą o pomoc do Boga, lecz nie był człowiekiem zbyt religijnym. Następnie pomyślał o swoim wielkim idolu – Joe DiMaggio, baseballiście drużyny Jankesów z Nowego Jorku. Jednak najlepszą motywację odnalazł w swej pamięci. Przypomniał sobie, jak za czasów świetności, gdy był jeszcze młodym marynarzem, pokonał w siłowaniu na rękę wielkiego Murzyna w barze w Casablance. Ich pojedynek trwał kilkanaście godzin, lecz ostatecznie to Santiago został czempionem, chociaż nikt się tego nie spodziewał.
Santiago był niezwykle doświadczonym rybakiem i silnym człowiekiem, co udowodnił czytelnikowi, kiedy holując marlina przez cały dzień, udało mu się przespać bez wypuszczenia linki z rąk. Obudził go kolejny wyskok ryby nad powierzchnię wody. Starzec zdawał sobie sprawę, że wkrótce rozpocznie się między nimi ostateczna rozgrywka.
Morderczy pojedynek zakończył się wielkim triumfem Santiago. Wykorzystując nie tyle siłę fizyczną, co doświadczenie, spryt i intelekt starzec zadał marlinowi zabójczy cios harpunem. Niestety ryba była zbyt wielka, by wciągnąć ją na pokład łodzi i rybak był zmuszony przymocować ją do jednej z burt.
W drodze powrotnej do wioski, po blisko trzech dniach zmagań na morzu, martwą zdobycz bohatera zaczęły atakować pojedyncze rekiny. Santiago początkowo usiłował odpędzać drapieżniki. Z noża i wiosła zrobił harpun (poprzedni, którym zabił marlina, wpadł mu do wody), lecz szybko okazało się, że ta broń jest nieskuteczna. Udało mu się odpędzić kilka rekinów uderzając je z całych sił wiosłem, lecz wkrótce i to się złamało.
Zdruzgotany porażką z krwiożerczymi drapieżnikami rybak przepraszał wielkiego marlina za to, że go zabił, a teraz nie potrafi obronić. Żałował, iż to on nie został pokonany w tym pojedynku. Wkrótce rekiny pozostawiły przy burcie łodzi rybaka jedynie szkielet wielkiego marlina.
Po niemal trzech dniach morderczego wysiłku na morzu, Santiago przybił nocą do portu. Zanim położył się w swoim łóżku musiał przejeść długą drogę od przystani do domu, podczas której niosąc na zmęczonych ramionach żagiel kilkakrotnie się przewracał. Zdruzgotany wreszcie zaznał spokoju i wypoczynku na łóżku zrobionym ze sprężyn i gazet.
Dopiero następnego dnia chłopiec uświadomił mu, że wcale nie poniósł porażki, lecz udowodnił, iż jest najlepszym rybakiem w wiosce. Żaden z lokalnych mężczyzn nie podjąłby się nawet walki z tak wielkim przeciwnikiem, a już na pewno nikt by jej nie wygrał. Santiago zrozumiał, że mimo wszystko pokonał swój pech, a przede wszystkim swoje słabości.