Старий Сантьяго живе в маленькому рибальському селищі на Кубі і рибалить зовсім один. Останній раз він провів у морі 84 дня, але не спіймав нічого. Раніше з ним рибалив хлопчик Мандоліно, який дуже допомагав старому, але батьки хлопчика вирішили, що Сантьяго - невдачливий, і веліли синові ходити в море на іншому човні.
Старий навчив Маноліна рибалити, і хлопчик любить Сантьяго, хоче йому допомогти. Він купує йому сардини для наживки, приносить їжу в його хатину. Старий уже давно змирився зі своєю убогістю.
Він був занадто простодушний, щоб задуматися про те, коли прийшов до нього смирення. Але він знав, що смиренність прийшло, що не принісши з собою ні ганьби, ні втрати людської гідності.
Вони розмовляють з хлопчиком про рибалку і знаменитих бейсболістів. Ночами старому сниться Африка його юності, і «леви, що виходять на берег».
На наступний день рано вранці старий відправляється на риболовлю. Хлопчик допомагає йому знести вітрило, підготувати човен. Старий говорить, що на цей раз він «вірить в удачу».
Одна за одною рибальські човни відчалюють від берега і йдуть в море. Старий любить море, він думає про нього з ніжністю, як про жінку. Насадивши на гачки приманку, Сантьяго повільно пливе за течією, подумки спілкуючись з птахами і рибами. Звиклий до самоти, старий вголос розмовляє сам з собою.
Перш, залишившись один, він співав; він співав іноді і вночі, стоячи на вахті, коли ходив на великих вітрильниках чи полював за черепахами.
Старий знає різних мешканців океану і дуже ніжно до них відноситься.
Спочатку Сантьяго ловить невеликого тунця. Він сподівається, що поруч зі зграєю тунців ходить велика риба, якої сподобаються його сардини. Незабаром старий зауважує легку дрож гнучкого зеленого прута, який замінює йому вудку. Волосінь йде вниз, і старий відчуває величезну тяжкість клюнули риби.
Старий намагається підтягти товсту волосінь, але у нього нічого не виходить - велика і сильна риба тягне легку човен за собою. Старий шкодує, що з ним немає хлопчика - він міг би зняти наживки з інших прутів, поки Сантьяго бореться з рибою.
Проходить близько чотирьох годин. Наближається вечір. Руки старого порізані, він закидає волосінь на спину і підкладає під неї мішок. Тепер Сантьяго може притулитися до борту човна і трохи відпочити.
Не можна, щоб в старості людина залишалась один ... Однак це неминуче.
Ніч. Риба тягне човен все далі від берега. Старий втомився, але думка про рибу ні на секунду не покидає його. Іноді йому стає її шкода - риба, така велика, сильна і стара, повинна померти, щоб він зміг жити далі. Сантьяго розмовляє з рибою: «Я з тобою не розлучуся, поки не помру».
Сили старого під кінець, а риба і не збирається втомлюватися. На світанку Сантьяго з'їдає тунця - інший їжі у нього немає. Ліву руку старого судомить. Старий сподівається, що риба спливе, і тоді він зможе вбити її гарпуном. Нарешті лісу йде вгору, і на поверхні показиваєтсяриба. Вона горить на сонці, голова і спина у неї темно-фіолетові, а замість носа - меч, довгий, як бейсбольна біта. Вона на два фути довше човни.
Один, у відкритому морі, він був міцно прив'язаний до такої великої риби, який він ніколи не бачив, про яку навіть ніколи не чув.
З'явившись на поверхні, риба знову йде в глибину, тягне за собою човен, і старий збирає сили, щоб утримати її. Чи не віруючи в Бога, він читає «Отче наш».
Проходить ще день. Щоб відволіктися, старий згадує про бейсбольних іграх. Згадує, як колись в таверні Касабланки мірявся силою з могутнім негром, найсильнішою людиною в порту, як цілу добу просиділи вони за столом, не опускаючи рук, і як він, врешті-решт, взяв верх. Він ще не раз брав участь у подібних поєдинках, перемагав, але потім кинув цю справу, вирішивши, що права рука йому потрібна для рибного лову.
Битва з рибою триває. Сантьяго тримає лісу правою рукою, знаючи, що, коли сили вичерпаються, її змінить ліва, судома в якій давно пройшла. На маленьку вудку попадається макрель. Старий підкріплює нею свої сили, хоча ця риба зовсім несмачна. Йому шкода велику рибу, якої не мають що їсти, але рішучість її вбити від цього не зменшується.
Як добре, що нам не доводиться вбивати сонце, місяць і зірки. Досить того, що ми вимагали їжу у моря і вбиваємо своїх братів.
Вночі риба виходить на поверхню і починає ходити колами, то наближається до човна, то відходить від неї. Це ознака того, що риба втомилася. Старий готує гарпун, щоб добітьрибу. Але вона відходить в сторону. Від втоми думки плутаються в голові у старого, а перед очима танцюють чорні плями. Сантьяго збирає залишки сил і встромляє гарпун рибі в бік.
І тоді риба ожила, хоч і несла вже в собі смерть, - вона високо піднялася над водою, немов хвастаючи своєю величезною довжиною і шириною, всією своєю красою і міццю.
Долаючи нудоту і слабкість, старий прив'язує рибу до борту човна і повертає в бік берега. Напрямок вітру вказує йому, в який бік плисти, щоб дістатися до будинку.
Минає година, перш ніж показується перша акула, що приплила на запах крові. Вона наближається до корми і починає рвати рибу зубами. Старий б'є її гарпуном в найвразливіше місце на черепі. Вона занурюється на дно, потягнувши з собою гарпун, частина мотузки і величезний шматок риби
Ще двох акул Сантьяго вбиває ножем, прив'язаним до весла. Ці акули забирають з собою не менше чверті риби. На четвертій акулі ніж ламається, і старий дістає міцну палицю.
Він знав, що кожен поштовх акули про човен означав шматок відірваного м'яса і що риба тепер залишає в море слід, широкий, як шосейна дорога, і доступний всім акулам на світлі.
Наступна група акул нападає на човен перед заходом. Старий відганяє їх ударами палиці по головах, але вночі вони повертаються. Сантьяго бореться з хижачка спочатку кийком, потім - гострим осколком румпеля. Нарешті акули спливають: їм нічого більше їсти.
Старий входить в бухту у своєї хатини пізно вночі. Знявши щоглу і зв'язавши вітрило, він бреде до дому, відчуваючи неймовірну втому. На мить старий обертається і бачить за кормою свого човна величезний хвіст риби і відблиск білого хребта.
У хатину старого приходить хлопчик. Сантьяго спить. Хлопчик плаче, побачивши його зранені долоні. Він приносить старому кави, заспокоює його і запевняє, що відтепер вони будуть рибалити разом, бо йому треба ще багато чому навчитися. Він вірить, що принесе старому успіх.
Вранці рибалки з подивом розглядають останки гігантської риби. На берег приходять багаті туристи. Вони здивовані, помітивши довгий білий хребет з величезним хвостом. Офіціант намагається розповісти їм, що сталося, але ті нічого не розуміють - вони занадто далекі від цього життя.
А старий в цей час спить, і йому сняться леви.