古巴的一位老渔夫桑地亚哥已经连续八十四天没打到鱼了。头四十天还有个叫曼诺林的孩子和他一起,后来孩子的父母嫌老头背运,就叫孩子搭了别人的船。老人睡觉时不像年轻时总梦见海浪、沙滩,而常常梦见狮子。
太阳又升起来了,鱼依然向北游。老人疲惫不堪,左手在抽筋,他吃些生鱼以增加力量。鱼终于跳出水面,比小船还长两英尺呢。老人放出更多钓丝,紧紧拽住,手已皮开肉绽,涌出鲜血。第三天,大鱼开始打转,最后银花花的肚皮终于翻出水面,老人使尽平生的力气把它杀死,并把它绑在船边。那家伙足有一千五百磅,或许更重。
死鱼的血腥味引来了鲨鱼群,它们围着船打转。老人用鱼叉扎,用桨、舵柄、刀子等与鲨鱼拼死搏斗。他深信:一个人并不是生来要给打败的你尽可把他消灭掉,可就是打不败他。最终,鲨鱼吃掉了他千辛万苦得来的大马林鱼的肉,仅仅留下一副大鱼的骨架。
路边的小茅棚里,老人又睡着了,他依旧脸朝下睡着,孩子在一旁守护他。老人正梦见狮子。