Vanamees Santiago elab Kuuba väikeses kalurikülas ja kalaleb kõik üksi. Viimati veetis ta merel 84 päeva, kuid ei püüdnud midagi. Temaga koos kalasid poiss Manolin, kes aitas vanameest palju, kuid poisi vanemad otsustasid, et Santiago on õnnetu, ja käskisid pojal minna merele teise paadiga.
Vanamees õpetas Manolinit kala püüdma ja poiss armastab Santiagot, tahab teda aidata. Ta ostab talle söödaks sardiinid, toob oma onnisse toitu. Vanamees on oma vaesusega juba ammu leppinud.
Ta oli liiga lihtsameelne, et mõelda, kui alandlikkus talle järele jõudis. Kuid ta teadis, et alandlikkus on tulnud ilma häbi ega inimväärikust kaotamata.
Nad räägivad poisiga kalapüügist ja kuulsatest pesapalluritest. Öösel unistab vanamees nooruses Aafrikast ja "lõvidest, kes lähevad kaldale".
Järgmise päeva varahommikul läheb vanamees kalale. Poiss aitab tal purje kanda, paati ette valmistada. Vanamees ütleb, et seekord "usub ta õnne".
Üksteise järel asusid kalapaadid kaldalt purjetama ja lähevad merele. Vana mees armastab merd, ta mõtleb seda hellusega, kui naist. Haavanud sööda, ujub Santiago aeglaselt vooluga, suheldes vaimselt lindude ja kaladega. Üksindusega harjunud, räägib vanamees endaga valjusti.
Enne ta üksi laulis; mõnikord laulis ta isegi öösel valves, kui jalutas suurtel purjekatel või jahti kilpkonni.
Vanamees tunneb erinevaid ookeani elanikke ja kohtleb neid väga õrnalt.
Esiteks püüab Santiago väikese tuuni. Ta loodab, et tuunikalakarja kõrval on suur kala, kellele tema sardiinid meeldivad. Varsti märkab vanamees väikest värisemist painduvast rohelisest vardast, mis tema õngeritva asendab. Õngenöör läheb alla ja vanamees tunneb hammustava kala tohutut kaalu.
Vanamees üritab paksu õngenööri üles tõmmata, kuid see tal ei õnnestu - suur ja tugev kala tõmbab endaga kerge paadi. Vanamees kahetseb, et temaga pole ühtegi poissi - ta oleks võinud teistest vardadest sööda eemaldada, kui Santiago kalaga võitleb.
See võtab umbes neli tundi. Õhtu läheneb. Vanamehe käed on taandetud, ta viskab õngenööri selga ja paneb koti alla. Nüüd saab Santiago toetuda paadi küljele ja natuke puhata.
Inimesel on võimatu vanemas eas üksi jääda ... See on aga paratamatu.
Öö. Kalad tõmbavad paadi rannikust kaugemale. Vanamees on väsinud, kuid kala mõte ei jäta teda hetkekski. Mõnikord on tal temast kahju - nii suured, tugevad ja vanad kalad peavad surema, et ta saaks edasi elada. Santiago räägib kaladega: "Ma ei lahku teiega enne, kui ma suren."
Vanainimese jõud on otsa saanud ja kala ei väsi. Santiago sööb koidikul tuunikala - tal pole muud toitu. Vana mehe vasakukrambid. Vanamees loodab, et kala tuleb välja, ja siis võib ta tappa ta harpuuniga. Lõpuks läheb mets üles ja pinnale ilmub kala. Ta põleb päikese käes, tema pea ja selg on tumelillad ning nina asemel on mõõk, kui pesapallikurikas. Ta on paadist kaks jalga pikem.
Üksinda oli ta avameres kindlalt nii suure kala külge, mida ta polnud kunagi varem näinud, mille kohta ta polnud kunagi isegi kuulnud.
Pinnale ilmudes läheb kala taas sügavikku, tõmbab paadi kaasa ja vanamees kogub jõudu selle hoidmiseks. Jumalasse uskumata loeb ta Meie Isa.
Veel üks päev möödub. Enda tähelepanu juhtimiseks tuletab vanamees meelde pesapalli mänge. Ta meenutab, kuidas ta mõõtis kord Casablanca kõrtsis oma jõudu koos sadama tugevaima mehega, kuidas nad istusid terve päeva laua taga, kätt kaotamata, ja kuidas ta lõpuks käe sai. Ta osales sarnastes võitlustes korduvalt, võitis, kuid siis viskas selle asja minema, otsustades, et tal on kalapüügiks vaja paremat kätt.
Lahing kaladega jätkub. Santiago hoiab parema käega metsa, teades, et kui jõud otsa saavad, asendab vasak vasakpoolset, kramp, millest ammu möödas. Makrell puutub kokku väikese õngeritvaga. Vanamees tugevdab sellega oma jõudu, kuigi see kala on täiesti maitsetu. Tal on kahju suurest kalast, millel pole midagi süüa, kuid meelekindlus teda sellest tappa ei vähene.
Nii hea, et me ei pea päikest, kuud ja tähti tapma. Piisab sellest, kui me pressime toidud merest välja ja tapame oma vennad.
Öösel tuleb kala pinnale ja hakkab ringi kõndima, lähenedes kas paadile või liikudes sellest eemale. See on märk sellest, et kala on väsinud. Vanamees valmistab kala lõpetamiseks harpuuni. Kuid ta astub kõrvale. Väsimusest lähevad mõtted vanainimese peas segadusse ja tema silme all tantsivad mustad laigud. Santiago kogub allesjäänud jõu ja kleepib harpuuni külje kaladele.
Ja siis tuli kala ellu, ehkki see tõi juba iseenesest surma - see tõusis kõrgele vee kohale, justkui uhkeldades oma tohutu pikkuse ja laiusega, kogu oma ilu ja väega.
Iiveldusest ja nõrkusest üle saades seob vanamees kala paadi küljega ja pöörab kalda poole. Tuule suund ütleb talle, millist teed majja pääsemiseks ujuda.
Tund möödub enne, kui näidatakse esimest haid, kes on seilanud vere lõhna järele. Ta läheneb ahtrile ja hakkab kala hammastega kiskuma. Vanamees lööb teda harpuuniga kolju kõige haavatavamasse kohta. Ta vajub põhja, lohistades harpuuni, osa köiest ja tohutut kalatükki
Santiago tapab noa külge seotud noaga veel kaks haid. Need haid võtavad endaga kaasa vähemalt veerand kala. Neljandal hail murdub nuga ja vanamees võtab tugeva klubi välja.
Ta teadis, et iga hai surumine paadil tähendab tükk rebitud liha ja et kalad jätsid nüüd jälje merre, lai kui maanteel ja ligipääsetavad kõikidele haidele maailmas.
Järgmine haide rühm ründab paati enne päikeseloojangut. Vanamees ajab nad pähe tulepuhvritega minema, kuid öösel naasevad nad tagasi. Santiago võitleb kiskjatega kõigepealt kumminuiaga, seejärel tiiru terava fragmendiga. Lõpuks ujub haid minema: neil pole enam midagi süüa.
Vanamees siseneb hilisõhtul oma onnist lahte. Pärast masti eemaldamist ja purje sidumist rändab ta maja juurde, tundes uskumatut väsimust. Hetkeks pöörab vanamees ringi ja näeb oma paadi ahtri tagant tohutut kalasaba ja valge harja peegeldust.
Vanamehe salongi tuleb poiss. Santiago magab. Poiss nutab, kui näeb oma haavatud peopesasid. Ta toob vanamehele kohvi, rahustab teda ja kinnitab meile, et nüüdsest saavad nad koos kala, sest tal on veel palju õppida. Ta usub, et toob vanainimesele õnne.
Hommikul hämmastavad kalurid hiiglasliku kala jäänuseid. Maale tulevad rikkad turistid. Nad on üllatunud, kui näevad pikka valget selgroogu, millel on tohutu saba. Kelner proovib neile juhtunut rääkida, kuid nad ei saa midagi aru - nad on sellest elust liiga kaugel.
Ja vanamees magab sel ajal ja ta unistab lõvidest.