David Kepesh (Ben Kingsley) is an aging although quite virile cultural critic and professor, in a state of 'emancipated manhood.' Previously married, he has a son who has never forgiven him for leaving his mother. His relationships with women are usually casual, brief and sexual in nature. His Pulitzer Prize-winning friend, George O'Hearn (Dennis Hopper), suggests that he 'bifurcate' his life: have conversations and enjoy art with a wife, and 'keep the sex just for sex.'
Believing himself to be an independent and self-actualized individual, he encounters Consuela Castillo (Penélope Cruz), a beautiful and confident grad student who takes one of his courses. She captures his attention like no other woman, and they fall in love. David is also in a casual yet carnal 20-year relationship with Caroline (Patricia Clarkson), another former student.
Through voiceover narration and further conversations with George, David reveals his increasing desire for Consuela, and his insecure suspicion that she may be seeing other, younger men. He even follows her to a party one night and she catches him spying on her. When she tells him he must trust her, he assumes she wants to end their romance.
Soon thereafter, he is surprised that she calls him for dinner, where she asks him, "What am I for you?' She wonders about their potential future, and he admits that the 30-odd-year age difference between them scares him. Meanwhile, his relationship with Caroline appears to end after she finds one of Consuela's tampons in David's bathroom.
David explains in voiceover that he and Consuela were involved for another year, but, 'Like all roller coaster rides, it had to end.' One night over dinner, Consuela invites David to her graduation party, pleading with him to meet her parents. He is reluctant but agrees to attend, only on the day of the event, David phones Consuela and claims he is stuck in bad traffic. In reality, he is sitting in his car, anxious about meeting Consuela's family. Heartbroken and annoyed, Consuela calls back and tearfully acknowledges the end of their relationship.
His son Kenny (Peter Sarsgaard) happens to show up that evening and tells David that he is cheating on his wife. Kenny is very conflicted, because he does not want to break up his family like David did, but the father has little sympathy for him. Kenny leaves in disgust.
David thereafter sinks into a depression which George tries to help him through. George tells him that he's actually become closer to his wife lately, despite cheating on her before. Soon thereafter though, George collapses and, after kissing both his wife and David, he abruptly dies.
Caroline comes back to visit David, and he eventually admits that he had a misguided affair with Conseula. They share a comfortable moment together, wondering if they are at last talking to each other after 20 years of sex.
In another voiceover, David tells us that two years went by in which Consuela never called him again, and he tried to get over the death of George, but he admits to his ongoing pain.
Suddenly on New Year's Eve, David receives a voice message from Consuela. She mentions that she needs to tell him something before he finds out from someone else. He worries that she will tell him she has found another man, or worse yet, ask for his blessing. When he calls her, she turns out to be just outside his building, eager to meet.
Consuela tells David that she has breast cancer and will need an operation. Grief-stricken, David cries and asks her why she didn't tell him sooner. Consuela tells David that he loved her body like no one else, and asks him to take photos of her topless, before the doctors 'ruin' her breasts in the surgery. David agrees.
David goes to see Kenny, who happens to be a doctor at the hospital where Consuela is having her operation, and asks for him to make an inquiry about her. Kenny suggests that her condition is quite serious.
David visits Consuela later when she is recovering from her surgery. Consuela says, 'I will miss you.' David responds, 'I am here,' then he climbs into the hospital bed and gently kisses her face.
In a flashback, we see the couple walking on the beach where Consuela told David she loves him.