桑提亞哥是個獨自在墨西哥灣流中打魚的老人,一連84天,他一條魚也沒捕到,人們認為他是“倒了大霉”。老人準備第二天繼續(xù)出海,他希望第85天能有好運氣。第二天,老人獨自進入茫茫的大海。由于近海魚很少,要想捕到大魚,只能去遠海。到了遠海,已經離家很遠了,他選擇了一個合適的地方,開始下餌。他想,這樣運氣來的時候,自己就有所準備了。寂靜的海面上,老人耐心等待了不知多少時候。突然,有魚上鉤了。這是一條罕見的大馬林魚,老人使出了渾身的勁兒猛拉釣索,但沒有用,小船倒被大魚拖著駛向大海遠處。四個鐘頭過去了,老人的身后已經看不見陸地的影子。夜色來臨,他們依然僵持著。為了專心對付這條大魚,老人放棄了其他咬餌的獵物。天快亮的時候,大魚忽然掀動了一下,老人被拖倒在艙板上,眼皮下劃破了,鮮血從臉頰上流下來。他把身子貼著船舷取暖。他想,你能熬多久,我也能熬多久。太陽升得更高時,魚游到了淺處。老人拉緊釣索,試圖讓它跳出水面,這樣它脊背上的氣囊裝滿空氣就沒法再沉人海底了。但魚一歪,倒差點兒讓老人跌到海里去。他發(fā)現(xiàn)手在淌血,背脊在夜里就很僵硬了,現(xiàn)在也正痛得厲害。釣索緊拉著,又過了一陣,他的左手抽起筋來,這時候,魚出水了,它全身比小船還要長兩英尺。就這樣,費了九牛二虎之力,在第三天,老人終于殺死了這條大魚。疲乏至極的老人張起帆拖著魚的尸體向回駛去。這時,一群鯊魚循著魚的血腥氣而來。聽到大魚皮肉撕裂的聲音,老人的魚叉猛地擊中鯊魚的腦。就這樣,老人用綁著刀子的槳與它們搏斗,然而鯊魚越來越多。老人已疲乏入骨,天色早已漆黑,他明白自己是徒勞,只是竭盡全力搏斗。刀子折斷了,他就用棍子拼命揮打,后來棍子被咬到水里,他只得猛地扭下船舵朝鯊魚掄去。這樣搏斗了不知多少時辰,終于最后一條鯊魚游走了,因為沒什么可吃的了。小船駛進小港,老人在黑夜中回到自己的窩棚,他已極度疲勞,趴著身子便沉沉睡去。第二天,人們發(fā)現(xiàn)海灘上有一條巨大的魚骸骨,全身足有18英尺。而此時,老人卻沉浸在夢鄉(xiāng)中。