Senis Santjagas gyvena mažame žvejų kaimelyje Kuboje ir žvejoja vienas. Paskutinį kartą jis jūroje praleido 84 dienas, bet nieko nesugavo. Anksčiau su juo žvejojo berniukas Manolinas, kuris labai padėjo senyvo amžiaus vyrui, tačiau berniuko tėvai nusprendė, kad Santjage yra nevykėlis, ir liepė sūnui plaukti į jūrą kitu laivu.
Senukas išmokė Manoliną žvejoti, o berniukas myli Santjagą, nori jam padėti. Jis perka jam sardines už jauką, atneša maisto į savo trobelę. Senis jau seniai susitaikė su savo skurdu.
Jis buvo per daug paprastas, kad galvotų apie tai, kada jam atėjo nuolankumas. Bet jis žinojo, kad nuolankumas atsirado neatnešdamas nei gėdos, nei praradus žmogaus orumą.
Jie kalbasi su berniuku apie žvejybą ir garsius beisbolo žaidėjus. Naktį senukas jaunystėje svajoja apie Afriką ir „liūtus, kurie išeina į krantą“.
Kitą rytą senolė eina žvejoti. Berniukas padeda jam nešti burę, paruošti valtį. Senukas sako, kad šį kartą jis „tiki sėkme“.
Vienas po kito žvejų valtys išplaukia iš kranto ir plaukia į jūrą. Senukas myli jūrą, jis galvoja apie tai švelniai, kaip moteris. Prikabinęs masalą, Santjagas lėtai eina su srautu, protiškai bendraudamas su paukščiais ir žuvimis. Pripratęs prie vienatvės, senukas garsiai kalba su savimi.
Prieš tai jis vienas dainavo; kartais jis dainuodavo net naktį, budėdamas, eidamas dideliais burlaiviais ar medžiodamas vėžlius.
Senukas pažįsta įvairius vandenyno gyventojus ir su jais elgiasi labai švelniai.
Pirmiausia Santjagas sugauna šiek tiek tuno. Jis tikisi, kad šalia tuno kaimenės yra didelė žuvis, kuriai patinka jos sardinės. Netrukus senukas pastebi lengvą lanksčios žalios lazdelės drebėjimą, kuris pakeičia jo meškerę. Meškerė nusileidžia, o senis jaučia didžiulį įkandusios žuvies svorį.
Senis bando ištraukti storą meškerę, bet jam nepavyksta - didelė ir stipri žuvis traukia lengvą valtį kartu su savimi. Senukas apgailestauja, kad su juo nėra berniuko - jis galėjo pašalinti masalą iš kitų lazdelių, kol Santjagas kovoja su žuvimi.
Tai trunka apie keturias valandas. Vakaras artėja. Senio rankos yra įdubusios, jis numeta meškerę ant nugaros ir užsideda po ja maišą. Dabar Santjagas gali atsiremti į valties šoną ir šiek tiek atsipalaiduoti.
Žmogui senatvėje neįmanoma palikti vieno ... Tačiau tai neišvengiama.
Naktis. Žuvis traukia valtį toliau nuo kranto. Senukas pavargęs, tačiau mintis apie žuvį jo nepalieka nė sekundės. Kartais jis dėl jos gailisi - žuvis, tokia didelė, stipri ir sena, turi mirti, kad galėtų gyventi. Santjagas kalbasi su žuvimi: „Aš nebendrausiu su jumis, kol nemirsiu“.
Senyvo žmogaus jėgos pritrūksta, o žuvis nesiruošia pavargti. Santjagas aušroje valgo tuną - jis neturi kito maisto. Senuko kairės rankos mėšlungis. Senukas tikisi, kad žuvis atsiras, ir tada jis gali ją nužudyti harpūnu. Galiausiai miškas pakyla, o jo paviršiuje pasirodo žuvis. Ji dega saulėje, jos galva ir nugara yra tamsiai violetinės spalvos, o vietoje nosies yra kalavijas, tol, kol beisbolo lazda. Ji yra dviem pėdomis ilgesnė už valtį.
Jis vienas atviroje jūroje buvo tvirtai prisirišęs prie tokios didelės žuvies, kokios dar nebuvo matęs, apie kurią dar net nebuvo girdėjęs.
Atsiradusi paviršiuje, žuvis vėl eina į gelmę, traukia valtį ir senolė sukaupia jėgų ją laikyti. Netikėdamas Dievu, jis skaito mūsų Tėvą.
Praeina dar viena diena. Norėdamas atitraukti dėmesį, senis prisimena beisbolo žaidimus. Jis prisimena, kaip kadaise išmatavęs savo jėgas smuklėje Kasablankoje su galingu juodaodžiu, stipriausiu uoste, kaip jie visą dieną sėdėjo prie stalo, nenuleisdami rankų, ir kaip jis pagaliau pasijuto geriau. Jis ne kartą dalyvavo panašiose muštynėse, laimėjo, bet paskui numetė šį reikalą nusprendęs, kad žvejybai reikia dešinės rankos.
Mūšis su žuvimis tęsiasi. Santjagas dešine ranka laiko mišką, žinodamas, kad kai jėgos pritrūks, kairė ją pakeis, o mėšlungis jau seniai praėjo. Skumbrė patenka į mažą meškerę. Senukas tuo sustiprina savo jėgą, nors ši žuvis yra visiškai beskonė. Jam gaila didelės žuvies, kuri neturi ko valgyti, tačiau pasiryžimas ją nužudyti nuo to nemažėja.
Labai gerai, kad mums nereikia naikinti saulės, mėnulio ir žvaigždžių. Pakanka, kad mes išstumtume maistą iš jūros ir nužudytume savo brolius.
Naktį žuvis iškyla į paviršių ir pradeda vaikščioti ratais, artėjant prie valties arba tolstant nuo jos. Tai ženklas, kad žuvis pavargo. Senis ruošia harpūną, kad baigtų žuvį. Bet ji pasitraukia. Nuo nuovargio mintys susipainioja seno žmogaus galvoje, o prieš akis šoka juodos dėmės. „Santiago“ surenka likusį stiprumą ir pritvirtina harpūną žuvims šone.
Ir tada žuvis atgyjo, nors ji jau atnešė mirtį savyje - ji pakilo aukštai virš vandens, lyg pasigirtų savo milžinišku ilgumu ir plotis, visu savo grožiu ir galia.
Pajutęs pykinimą ir silpnumą, senis pririša žuvis prie valties šono ir pasuka kranto link. Vėjo kryptis nurodo, kuriuo keliu plaukti, kad patektų į namą.
Valanda praėjo, kol bus parodytas pirmasis ryklys, kuris plaukė dėl kraujo kvapo. Ji priartėja prie laivagalio ir pradeda dantimis ašaroti žuvį. Senolė smogia jai harpūna į pažeidžiamiausią kaukolės vietą. Ji nugrimzta į dugną, tempdama harpūną, virvės dalį ir didžiulį žuvies gabalą
Santjagas žudo dar du ryklius peiliu, surištu į irklą. Šie rykliai pasiima mažiausiai ketvirtadalį žuvies. Ant ketvirtojo ryklio peilis nutrūksta, o senis pasiima stiprų klubą.
Jis žinojo, kad kiekvienas ryklio stūmimas valtyje reiškia suplėšytos mėsos gabalą ir kad žuvis dabar paliko ženklą jūroje, plačiame kaip vieškelis ir prieinama visiems rykliams pasaulyje.
Kita ryklių grupė užpuola valtį prieš saulėlydį. Senukas juos išmeta su batų smūgiais ant galvų, bet naktį jie grįžta. Santjagas pirmiausia kovoja su plėšrūnais su lazda, po to su aštriu stulpelio fragmentu. Galiausiai rykliai išskrenda: jie neturi ką daugiau valgyti.
Senis įeina į įlanką prie savo trobelės vėlai vakare. Nuėmęs stiebą ir pririšęs burę, jis klaidžioja namo, pajutęs neįtikėtiną nuovargį. Akimirką senis pasisuka ir mato didžiulę žuvies uodegą ir balto kraigo atspindį už savo valties laivagalio.
Berniukas ateina į senio kabiną. Santjagas miega. Berniukas verkia pamatęs sužeistus delnus. Jis atneša senoliui kavos, jį ramina ir patikina, kad nuo šiol jie kartu žvejos, nes jis dar turi daug ko išmokti. Jis tiki, kad atneš senam žmogui sėkmės.
Ryte žvejai stebisi milžiniškos žuvies liekanomis. Į krantą atvyksta turtingi turistai. Jie nustebo pastebėję ilgą baltą stuburą su didžiule uodega. Padavėjas bando jiems pasakyti, kas nutiko, bet jie nieko nesupranta - jie per toli nuo šio gyvenimo.
O senis šiuo metu miega, o jis sapnuoja liūtus.