一位孤独年迈的古巴渔夫圣地亚哥,在海上守候了84天一无所获。尽管不被理解,希望和自信却让乐观不服输的他选择继续等待,终于在第85天的时候捕到了一条看起来有一千五百磅重的大马林鱼。而那天,只有他自己出海,小徒弟马诺林没有跟来,因为老人不想把自己的坏运气带给这个一直照顾着他的小男孩。
与大鱼在海上僵持了两天两夜,没有水和食物、没有助手也没有武器,伤痕累累左手还抽筋,但疲惫不堪的他还是在第三天打死了那条比他的小船还要宽还要大的大马林鱼,用坚强的意志证明了“一个人的能力有多大,就能解决多大的困境!”然而,眼看飓风就要来临,飘摇的小船装不下这么大的鱼,老人只能在海里用拖行的办法才能把大鱼带回去。
返航途中,从大鱼心脏流出来的汩汩血腥招来了第一条鲨鱼,依靠折断的舵柄和必胜的信念老人再一次战胜了来袭的鲨鱼,但大鱼的尾部也被咬去一大块。
尽管饥饿和疲劳让他感到眩晕和意识模糊,当鲜血再一次把两头鲨鱼吸引过来的时候,梦里那头“非洲海边的狮子”却提醒他必须不顾一切地保护好自己的劳动成果,毕竟这么大的鱼足够一个人过一整个冬天。终于,他刺中了其中的一头鲨鱼,鱼叉却在与另一只鲨鱼搏斗的时候被折断带走,大鱼也丢失了一半。
没有鱼叉,绳子也因为用来绑大鱼而不够了,回航的路依然看不到边际,老人不知道还会遇到多少鲨鱼,但他已经没那么在乎他的大鱼了,甚至连看它一眼都懒得,只想着赶紧靠岸,回到他那间没有炉火的棚屋,还有那个一直等着他的小男孩……
当一群鲨鱼游过来的时候,老人只能用刀片绑在折断的舵柄上作为最后的武器与鲨鱼战斗,因为他信奉“人可以被消灭,但不能被打败!”
鲨鱼群被赶跑了,那条大鱼也被撕咬得只剩一个大大的鱼头,筋疲力尽的他拖着那具残存的鱼骨头,回到了那间破败冰冷的小屋,人们惊叹从未见过那么大的马林鱼,只有小男孩马诺林为他落泪,端着餐厅老板马丁赠送的热咖啡和食物等他醒来……
文章情节随海上的星星和月亮等自然时空的更替而推进;反衬的写作手法让鲨鱼的凶猛鲜明地衬托出老人的坚毅和顽强。同时,多次与男孩和大马林鱼的对话也形象地刻划出了老人性格上的弱点,是小男孩和餐厅老板对他的照顾给了他信心和力量,人间的温暖让这位孤独、执着的老人有勇气面对一切艰难的挑战,拼尽全力去战胜它们,哪怕最后他只是一个“失败的胜利者”!