桑提亚哥是个独自在墨西哥湾流中打鱼的老人,一连84天,他一条鱼也没捕到,人们认为他是“倒了大霉”。老人准备第二天继续出海,他希望第85天能有好运气。第二天,老人独自进入茫茫的大海。由于近海鱼很少,要想捕到大鱼,只能去远海。到了远海,已经离家很远了,他选择了一个合适的地方,开始下饵。他想,这样运气来的时候,自己就有所准备了。寂静的海面上,老人耐心等待了不知多少时候。突然,有鱼上钩了。这是一条罕见的大马林鱼,老人使出了浑身的劲儿猛拉钓索,但没有用,小船倒被大鱼拖着驶向大海远处。四个钟头过去了,老人的身后已经看不见陆地的影子。夜色来临,他们依然僵持着。为了专心对付这条大鱼,老人放弃了其他咬饵的猎物。天快亮的时候,大鱼忽然掀动了一下,老人被拖倒在舱板上,眼皮下划破了,鲜血从脸颊上流下来。他把身子贴着船舷取暖。他想,你能熬多久,我也能熬多久。太阳升得更高时,鱼游到了浅处。老人拉紧钓索,试图让它跳出水面,这样它脊背上的气囊装满空气就没法再沉人海底了。但鱼一歪,倒差点儿让老人跌到海里去。他发现手在淌血,背脊在夜里就很僵硬了,现在也正痛得厉害。钓索紧拉着,又过了一阵,他的左手抽起筋来,这时候,鱼出水了,它全身比小船还要长两英尺。就这样,费了九牛二虎之力,在第三天,老人终于杀死了这条大鱼。疲乏至极的老人张起帆拖着鱼的尸体向回驶去。这时,一群鲨鱼循着鱼的血腥气而来。听到大鱼皮肉撕裂的声音,老人的鱼叉猛地击中鲨鱼的脑。就这样,老人用绑着刀子的桨与它们搏斗,然而鲨鱼越来越多。老人已疲乏入骨,天色早已漆黑,他明白自己是徒劳,只是竭尽全力搏斗。刀子折断了,他就用棍子拼命挥打,后来棍子被咬到水里,他只得猛地扭下船舵朝鲨鱼抡去。这样搏斗了不知多少时辰,终于最后一条鲨鱼游走了,因为没什么可吃的了。小船驶进小港,老人在黑夜中回到自己的窝棚,他已极度疲劳,趴着身子便沉沉睡去。第二天,人们发现海滩上有一条巨大的鱼骸骨,全身足有18英尺。而此时,老人却沉浸在梦乡中。