Santiago był starym rybakiem w Golfstromie. Pomagał mu chłopiec o imieniu Manolin, który wypływał z nim na ryby. Santiago nie miał jednak ostatnio szczęścia i rodzice chłopca kazali mu wypływać z innym rybakiem. Chłopiec był im posłuszny, ale nadal pomagał staremu, gdy wracał z połowu, ponieważ bardzo go kochał.
Santiago doskwierała bieda, ale razem z chłopcem udawał, że ma wszystko, co jest mu niezbędne. Wierzył, że gdy wypłynie następnego dnia, złowi ogromną rybę. Wieczorem jego mały przyjaciel przyniósł mu kolację, ponieważ w przeciwnym wypadku Santiago nie miałby nic do zjedzenia. Umówili się, ze następnego ranka Santiago obudzi Manolina i razem pójdą na nadbrzeże: stary do swojej łodzi, chłopiec do łodzi nowego pracodawcy. Tak też zrobili i Santiago, jeszcze pod osłoną nocy, wypłynął samotnie w morze.
Ocean był spokojny, a prąd wypychał łódź coraz dalej. Gdy się rozwidniło, Santiago zarzucił przynęty. Ostatnie niepowodzenia w połowach tłumaczył sobie brakiem szczęścia. Uważał, że jest dobrym rybakiem. W miarę upływu czasu odpływał coraz dalej od lądu. Początkowo widział sporo łodzi, ale w pewnym momencie pozostały już tylko trzy. Nagle zauważył sokoła i zaczął za nim płynąć w przekonaniu, że ptak doprowadzi go do ryb. Ptak polował na latającą rybę, ale tę samą ofiarę upatrzyła sobie grupa delfinów. Santiago miał nadzieję, że gdzieś niedaleko nich znajduje się jego wymarzona wielka ryba. Coraz bardziej oddalał się od lądu. Ptak doprowadził go do ławicy tuńczyków. Santiago złapał jednego i przeznaczył na przynętę. Nadal czekał, aż nawinie mu się wielki marlin, jego upragniona zdobycz.
Nagle zauważył, że linka, do której przyczepione były jako przynęta sardynki, porusza się. Wziął ją w dłoń i poczuł wielki ciężar. Był to marlin. Chociaż Santiago próbował podciągnąć go do powierzchni wody, by wbić w niego harpun, ryba płynęła z hakiem w pysku i ciągnęła za sobą łódź. Linka w rękach Santiago była naprężona. W ogóle nie widział już lądu, ponieważ ryba ciągnęła go już od kilku godzin.
Zapadł zmrok, zrobiło się zimno. Stary myślał kilka razy o tym, że chciałby mieć przy sobie chłopca. Nad ranem inna ryba wzięła przynętę, ale musiał ją odciąć, bo nie dałby rady walczyć z dwoma naraz. Poodcinał też inne przynęty, żeby mieć więcej linki w zapasie, a to oznaczało, że stracił pozostałe haki i część rybackiego sprzętu. Zdecydował się skupić jedynie na walce z potężnym marlinem. W pewnym momencie ryba szarpnęła, Santiago upadł i rozciął sobie skórę pod okiem. Bardzo bolały go plecy, ponieważ cały ciężar, jaki miał na lince, przeniósł na swój grzbiet. Mówił sobie, że wytrzyma tak długo, jak jego przeciwnik.
Już po nadejściu brzasku ryba szarpnęła znowu i tym razem Santiago zranił rękę. Był zły, że dał się zaskoczyć. Potem postanowił zjeść małego tuńczyka, żeby nie opaść z sił. Zdrętwiała mu lewa ręka, zmęczona ciągłym napięciem. W końcu marlin wypłynął na powierzchnię – Santiago nigdy wcześniej nie widział tak wielkiej ryby. Marlin wynurzył się tylko na chwilę, a potem z powrotem opadł na poprzednią głębokość. W południe lewa ręka starego nareszcie się rozluźniła, ale i tak bardzo cierpiał. Modlił się, żeby zwyciężyć rybę.
Zapadł zmrok, a Santiago przypominał sobie, jak kiedyś siłował się na rękę z pewnym Murzynem przez cały dzień i przez całą noc. Jego przeciwnik był uznawany za najsilniejszego człowieka w porcie, ale Santiago ostatecznie pokonał go nad ranem po długiej walce. Potem jeszcze kilka razy był zwycięzcą i doszedł do wniosku, że może pokonać każdego.
Wieczorem mężczyźnie udało się wciągnąć do łodzi delfina, który złapał się na