Головним героєм повісті «Старий і море» виступає самотній старий Сантьяго. Він жив на березі моря, і багато років займався своєю улюбленою справою – рибальством. Але прийшли для Сантьяго важкі часи, вже багато днів старий не міг зловити жодної рибки.
Перший час він виходив у море з хлопчиком Манолином, якого навчав рибної ловлі. Однак, після багатьох днів невдач, батьки хлопчика заборонили виходити рибалити зі старим, вважаючи його невдалим рибаком і знайшли більше везучую човен. І дійсно, через тиждень, човен, на якій тепер плавав хлопчик, доставила на берег кілька великих риб.
Виглядав старий дуже втомленим, виснаженим важким життям і численними проблемами. Він був надзвичайно худим, на обличчі засіло безліч зморшок, шкіра, із-за постійного перебування на сонці, була покрита пігментними плямами. Одні очі кольору моря, зберегли молодий і живий колір, вони були блакитні, та мали веселий погляд. По очах старого було зрозуміло, що він сильний, відчайдушний чоловік, який не звик здаватися у важких, життєвих обставин.
Манолин, незважаючи на те, що рибалив тепер не з ним, все одно приходив до Сантьяго і допомагав йому. Човен у Сантьяго стала старою, парус зносився і мав безліч латок.
Одного разу ввечері, після чергової невдалої риболовлі, старий з хлопчиком сиділи, пили пиво на терасі і обговорювали море. Манолин згадував свою першу спійману рибу і вихід у море зі старим. Для хлопчика це були яскраві і приємні спогади.
Сантьяго поділився з Манолин своїми планами, він збирався вранці знову вийти в море і спробувати щастя. Юнак запропонував йому свою допомогу, наудить наживи в якості приманки для риби.
Вони піднялися до старого у халупу. В будинку Сантьяго було дуже бідно, там стояв стіл, стілець, ліжко, а також поглиблення в підлозі, щоб готувати їжу. Трапеза старого складалася з рису і маленької рибки. Манолин підтримував старого як міг, завтра йому неодмінно має пощастити, він неодмінно принесе додому повну човен улову.
Далі, вони обговорюють новини спорту, матчі і спортсменів. Після того як хлопчик пішов додому, старий ліг спати і йому наснився його молоді роки, рибалка в Африці, леви, що видніється на березі, високі кручі і білі піщані пляжі.
Прокинувшись рано вранці, Сантьяго, взявши з собою запаси води і провізії, вийшов на човні у море. Вдалині виднілося безліч таких же рибальських човнів, повільно отчаливших від берега в бік відкритого моря.
Виходячи в море, старий ніби молодів душею, він дуже прив’язаний до моря і розуміє його як ніхто інший. Перебуваючи в човні, він, у своїй уяві, спілкується із мешканцями морських глибин, добре розуміючи їх жести і звички.
Раптово Сантьяго відчув, що волосінь тягнеться в глибину і зрозумів, що на гачок попалася велика риба. Однак потягнувши волосінь, старий виявив, що не зможе витягнути рибу, з-за її значних розмірів. Сантьяго вирішив почекати, почекати поки риба втомиться, але через кілька годин риба все також тягла човен у відкрите море.
Настала ніч, в повітрі відчувалася прохолода і старий накинув собі на плечі старий мішок. Рибалка подивився в бік будинку і побачив, що вогні містечка зникли з горизонту. З цього випливає, що риба веде його все далі від рідних берегів.
Сили поступово покидають його. Раптом риба показується над гладдю води. У неї незвичайний темно-фіолетовий колір, а на місці носа красується величезний меч. Риба знову занурюється вглиб океану і намагається тягнути за собою човен. Рибалці доводиться зібрати всі сили, щоб вона не змогла зіскочити з вудки. Старий, який раніше ніколи не вірив у Бога, у цій непростій ситуації став молитися Всевишньому.
Пройшов один день, боротьба з рибою не припинялася. Рука старого поступово почала німіти. Риба немов грала з рибаком, то з’являлася на поверхні океану, то зникала в глибині океану. Сантьяго, у вільну руку взяв гарпун, щоб при слушній нагоді завдати рибі смертельний удар, але вона відчувала і не показувалася більше на поверхні. Від втоми і виснаження у старого стала крутитися голова, його починає нудити, він усвідомлює, що довго не витримає такої сутички.
Раптом щастя посміхнулося старому, і риба показалася на поверхні і підплив до самого краю човна. Сантьяго заносить клинок рибі глибоко в м’якоть. Відчуваючи незвичайну втому, біль і нудоту, він все-таки збирає всі свої сили, що залишилися, підтягує рибу ближче до човна і прив’язує її до борту. Визначаючи за вітром де знаходяться рідні береги, старий направляє човен до будинку.
Через деякий час на поверхні океану виникає акула. Відчувши кров, вона направляється за човном. Опинившись поруч з рибою, вона стала розривати тушу на частини. Сантьяго з великим трудом встромив в неї ножа. Повільно опускаючись на дно, акула забрала за собою гарпун, одну частину мотузки і великий шматок риби. З мертвої риби знову почала текти кров, значить, подумав старий, прийдуть нові акули. І дійсно, через час Сантьяго побачив на горизонті зграю акул. Вони стрімко підпливали до човна, і рибак став готуватися до сутички з ними. Він прив’язав до весла ніж і став чекати, коли акули наблизяться до нього.
Спочатку підпливла перша акула, рибак встромив ножа в її спину і в очі. Другу акулу довелося вдарити ножем кілька разів, щоб убити її. Про третю хижачку старий ламає лезо ножа і йому доводиться бити її кийком. Зрештою акули відстали від старого й поплили, але від риби залишився один лише скелет.
Повернувся в бухту Сантьяго пізно вночі, коли місто спав мирним сном. Знімаючи вітрило до човна, він побачив за бортом великої хвіст риби і скелет, що виходив з нього.
Вранці, зустрівшись з Манолином, Сантьяго заридав у нього на грудях. Юнак намагається втішити рибака, примовляючи, що тепер не залишить його і буде виходити в море тільки з ним. Коли вони пішли в халупу Сантьяго, біля човна туристи зібралися і стали обговорювати таку дивну рибу. Офіціант, що перебував поруч, намагався розповісти, що сталося, але туристи не усвідомили трагедії, що сталася в море.