长达半个世纪的爱情故事。
19世纪末期哥伦比亚的喀他赫纳,电报员Florentino Ariza(Javier Bardem 饰)爱上了富商的女儿Fermina Daza(Giovanna Mezzogiorno 饰),他用热情洋溢的情书打动了Fermina Daza的心,二人迅速相恋。然而,由于身份地位的悬殊,Fermina Daza不得不屈从于父亲,离开了喀他赫纳,在年轻的Fermina Daza看来,二人的爱情只是少不更事的幻觉而已。
几年后,Fermina Daza在父亲的安排下,嫁给了有好感的医生Dr. Juvenal Urbino(Benjamin Bratt 饰)。正值霍乱时期,一个医生丈夫不仅能带来优渥的生活,更是生命有力的保障。Fermina Daza渐渐忘记了当年的事情。可是Florentino Ariza却没有忘记,当年一无所有的青涩少年,继承了伯父的遗产,成为富有的船商,他经历着不同的女人,但是内心却对Fermina Daza念念不忘,他能做的事情,就是等待,等待重逢的那一天,纵然五十多年过去,对她的心意还一如往昔。。在泰国沿海村庄,大批罗兴亚难民淹死在海边。一位青年渔夫在丛林中发现了一个昏迷不醒的男子,他将这个陌生人救回家中。被救的男子一言不发,渔夫给他起名叫通猜。两个男人开始一起生活,并慢慢在彼此之间产生了无言的牵系。渔夫用来吸引蝠鲼(又称“魔鬼鱼”)的闪亮宝石,象征着他们的友情。一天晚上,渔夫登上渔船出海打渔,再也没有回来,留下通猜独自一人。渐渐地,通猜开始接管了渔夫的生活——他的房子、他的工作,以及他的前妻。。