The film opens with two teenaged best friends—working-class Julio (Gael García Bernal) and upper-class Tenoch (Diego Luna)—each having sex with their respective girlfriends before the girls depart on a trip to Italy. Without their girlfriends around, the boys take the opportunity to live as bachelors.
At a wedding, they meet Luisa (Maribel Verdú), the wife of Tenoch’s cousin, Jano. Trying to impress Luisa, the boys talk about a fictitious, secluded beach called Boca del Cielo (“Heaven’s Mouth”); however, she initially declines their invitation to accompany them there. Later, Luisa visits a doctor; after her appointment, she receives a phone call from a drunken Jano, who tearfully confesses that he cheated on her. The next day, Luisa calls Tenoch and asks if their offer to accompany them to the beach is still open.
Although Julio and Tenoch have little idea where they will actually go, the three set off, driving through rural Mexico. They talk about their relationships and sexual experiences to pass the time: the boys boast about their exploits, while Luisa speaks of Jano and recalls her first love, who died in a motorcycle accident.
During an overnight stop, Luisa leaves a tearful message on Jano’s answering machine explaining that she has left him. Tenoch enters her motel room in search of shampoo but finds her crying. Luisa seduces him, and the two have sex. Julio sees them through the open door and walks away, upset. Afterward, Julio tells Tenoch he had sex with Tenoch’s girlfriend. The next day, Luisa notices the tension between the boys, so she has sex with Julio to equalize their perceived status. An upset Tenoch then reveals that he has had sex with Julio’s girlfriend. Julio and Tenoch begin fighting, but stop when Luisa threatens to leave them.
Driving along the coastal road that evening, they chance upon an isolated beach that is actually called Boca del Cielo. Making camp there, they begin to relax and enjoy the ocean, along with the company of a local family. After their campsite is ransacked by a herd of pigs, they spend the night in the nearby village, where Luisa makes another phone call to Jano, bidding him an affectionate but final farewell.
That evening, Luisa, Julio, and Tenoch drink to excess and joke about their sexual transgressions. Julio and Tenoch reveal that they each have frequently had sex with the other’s girlfriend. Julio adds that he had sex with Tenoch’s mother, but it is unclear whether he is serious. The three dance together sensually and then retire to their room. As Luisa kneels between the boys and stimulates them both, the boys embrace and kiss each other passionately.
The next morning, the boys wake up together, naked. Tenoch goes outside to vomit, and the boys are eager to return home. The narrator explains that their journey back was quiet and uneventful, and that Luisa stayed behind to explore the nearby coves. The narrator further discloses that Tenoch and Julio broke up with their girlfriends and also stopped spending time together.
A year later, in a chance encounter in Mexico City, Tenoch and Julio have a cup of coffee. They awkwardly catch up on each other’s lives and news of their mutual friends. Tenoch informs Julio that Luisa died of cancer a month after their trip, and that she had been aware of her prognosis during the time they had spent together. Tenoch excuses himself because his current girlfriend is waiting for him. Before leaving, Tenoch tells Julio he will see him again; however, the narrator reveals that this interaction is their last meeting.