Starzejący się profesor Raimund Gregorius (Jeremy Irons) przypadkowo spotyka tajemniczą Portugalkę. Przekonuje go ona do zakupienia pewnej książki. Zafascynowany dziełem, Raimund porzuca pracę i wyrusza w podróż do Lizbony. Ma nadzieję odkryć losy autora, Amadeu de Prado (Jack Huston), który był doktorem i poetą żyjącym za czasów dyktatury Antonio de Oliveira Salazara.
Przypadkowe spotkanie z tajemniczą Portugalką skłania szwajcarskiego profesora Raimunda Gregoriusa do porzucenia kariery naukowej.
Raimund jest wykładowcą łaciny i bada języki starożytne. Jego życie przybiera nieoczekiwany obrót, kiedy na moście w szwajcarskim Bernie Raimund ratuje kobietę, która chce zakończyć swoje życie skacząc do rzeki. Leciwy wykładowca chce dowiedzieć się o niej czegoś więcej, ale kobieta znika, zostawiając mu swój płaszcz. W jego kieszeni Raimund znajduje książkę portugalskiego lekarza, a w niej bilet i bez wahania wyrusza pociągiem do Lizbony. Kiedy Raimund zaczyna szukać autora książki, poznaje mroczne karty portugalskiej historii i dowiaduje się o tragicznym trójkącie miłosnym. Bardzo szybko okazuje się, że wpadł na trop tajemnicy, a stawka w grze, którą zaczyna prowadzić jest bardzo wysoka. Podróż, która staje się największą przygodą jego życia przekracza granice czasu i przestrzeni, odkrywa przed nim nieznane fakty z historii, filozofii i medycyny, pomaga mu odnaleźć prawdziwą miłość i skłania do refleksji nad prawdziwym sensem życia.