Praga, 1968. Thomas (Daniel Day-Lewis) es un médico mujeriego cuyo apetito sexual nunca está completamente satisfecho. Thomas cree en el mantenimiento de la satisfacción sexual sin amor involucrados y descubrir la verdadera comprensión y la felicidad erótica con Sabina (Lena Olin), un artista seductor difícil de alcanzar. Sin embargo, la comprensión de Thomas para el amor y el compromiso es desafiado cuando conoce a Teresa (Juliette Binoche), un joven sexualmente ingenuo e inocente que capta la mente de Thomas en un viaje de negocios fuera de la ciudad. Cuando Teresa aparece en la puerta de su casa en Praga, Thomas permite a los jóvenes a quedarse con él, rompiendo todos los esquemas. A pesar de sus numerosos asuntos, Thomas cae profundamente enamorado de Teresa y terminan casándose. Sabina acepta el matrimonio de Thomas y Teresa, Teresa, pero no puede aceptar todos los amantes de Thomas y, en el fondo, se siente profundamente herido. Thomas, Teresa y Sabina se involucran en un intenso triángulo amoroso finalmente roto por la invasión soviética violenta de 1968.