桑提亚哥是一位老人,在哈氏那近海以捕鱼为生。即便是在最好的光光景下,他过的也只是一种聊以糊口的艰难生活,更何况到现在老人已经有84天没有捕到一条鱼了。平时帮他捕鱼的小男孩马诺林已离开了他,因为他的父母执意要他到能赚钱的船上去干活。然而,马诺林十分敬重这位老人,总是等候着,迎接他一天又一天捕而无获地驾船回到海港。老人不理睬其他渔民的冷言冷语,落下风帆,扛起鱼叉和钓丝,然后走回家去。这是一所十分寒酸的单间棚屋,室内用作装饰的是一些宗教画和一张他已故妻子的照片。那男孩执意要老人允许他替他买一些沙丁鱼,以便次日用作捕鱼的诱饵。
他们常编出个理由,老人藉此可以假装推迟吃晚饭,其实他俩都清楚,老人拿不出任何东西来吃。他坐下读旧报纸,男孩则出去取沙丁鱼,马诺林回来的时候,老人已经睡着了,他的样子十分苍老,饱经风霜,毫无生气。男孩又悄悄溜出去,从当地旅馆弄回一顿便餐,供他俩享用。他们一边吃一边热烈地谈论着棒球,他俩都是乔·迪马吉奥的崇拜者。夜幕降临了,老人把裤子卷起来当作枕头,随后便入眠了。现在他老了,做梦也不再梦见人,而是梦见奇异的地方。他看见非洲海岸上有狮子在奔跑。
次日清晨,老人早早醒来,他唤醒了那男孩,带他来到海滨,一起喝了咖啡,然后各自上船出海。老人将船划出海港时,天仍漆黑一片,他看不见,仅能听见其他渔船在附近水面上行进。不过,他很快就将那些船抛在了身后。他决心冒险一拼到远海去,以求冲破持续不断的坏运气,能捕到一条鱼。他热爱大海,甘愿忍受它所带来的苦难与残酷。这就像一个男人甘愿忍受他所心爱的女人在感情上的变化无常一样。
及至黎明时分,老人已经在好几根钓丝上装好沙丁鱼做诱饵,并将它们沉入到不同的深度。他在船上等待着,祈求交上好运。他将船划至有海鸟盘旋于上空的海面。他发现一群飞鱼受到海豚的追逐,正在飞快的逃窜。他的所有收获只是一条小小的金枪鱼,只能用作诱饵。他一边划船等待,一边大声自言自语起来,这是那男孩不再跟他捕鱼以来他所养成的一个习惯。
终于,他感到富有韧性的钓竿微微一动,立即知道有鱼在小心翼翼地咬饵了。
他轻轻一拉钓丝,便判断出那是一条大鱼。经过一阵令人焦躁难受的等待之后,大鱼终于吞下了钓钩。那鱼立即证明了它的智慧和力量,它并没有惊慌失措地猛拉猛拽钓丝,而是拖着渔船,从容不迫地游去。老渔民等待着时机,希望那鱼不会往下潜。这奇异的航行整整持续了一天。当夜幕降临时,老人看见远处哈瓦那的灯光正在逐渐消失。由于他不得不拉住挂在肩头的钓丝,因而感觉极为难受,真希望那男孩在场助他一臂之力。他一面坚持不放,一面思量着那条鱼,敬佩它的勇气和智慧,渐渐对它产生出一种奇异的感情。这时,又有另一条鱼咬住了另一根钓丝,但老人没有理睬,以便集中精力跟大鱼进行殊死搏斗。
第二天早晨,大鱼仍在那一带游动,并开始猛拽钓丝。老人感到很难应付,因为除了疲惫不堪外,他的左手开始剧烈的痉挛起来。他吃了些生鱼好增添些体力,这时他回忆起昔日他在卡萨布兰卡角力大赛中曾赢过一个黑人。大鱼终于跃出水面,使老人有机会第一次看见它:鱼很漂亮,比老人的船还长。午后,老人的手已经不再痉挛,他还设法捕到一条海豚。傍晚,他吃了海豚,以便保持体力。深夜,那鱼又拽又蹦,把老人从梦中惊醒。他放出更长的钓丝,但牢牢地拉紧,使大鱼每往下拖一寸都极为困难。他双手磨得皮开肉绽,鲜血直流,于是他将手浸泡在能够有效地缓解疼痛的海水里。
到了第三天,大鱼开始转起圈来。这是一个明白无误的迹象,表明这场较量即将结束。由于疲劳过度,老人感到头晕眼花。他万分担忧的是,不等他刺死大鱼,他的气力就会消耗殆尽。当大鱼打转儿时,他逐渐收紧鱼丝,使其捕获物离船越来越近。终于,大鱼近在咫尺了,老人用鱼叉扎它,干净利落地刺中了它的心脏。大鱼垂死挣扎,跃出了水面,但不久即死去,被缚在船侧。尽管老人疲惫不堪,但这场殊死搏斗已经宣告结束,他的船向着家的方向驶去。
然而老人的麻烦并没有结束。不久,鲨鱼嗅到了那条死鱼发出的血腥气,立即追逐上来。老人顺利地扎死了第一条鲨鱼,但它身上带着那把宝贵的鱼叉沉入了大海。更多的鲨鱼围攻上来,老人迫不得已,只好一步步凭借临时拼凑的武器来驱赶它们:首先用绑在长竿上的刀子,然后拿一根棍棒,最终连舵柄都使上了。次日凌晨小船驶入海港时,老人已因昼夜拼搏而精疲力竭。那条死鱼已经支离破碎,它的美丽、值钱的鱼肉都已经荡然无存。老人悲怆地放下船桅,收拾起残破的渔具,在极度疲惫中,神情恍惚,步履踉跄地回到了自己的棚屋。那男孩为他送来了咖啡,劝慰他不必为没斗过鲨鱼而烦恼。在海港,其他渔民都对捕获的大鱼惊叹不已。而此时老人已沉入梦乡,在梦里他再次看见了狮子。