Mexico City, D.F. 1970-1971
Cleo (Yalitza Aparicio) is a housekeeper working for a wealthy family. She spends her days tending to their four children - Toño, Paco, Pepe, and Sofi, taking care of the dogs, and cleaning the house. She has a close friendship with Adela (Nancy Garcia), the other housekeeper. There is tension between Antonio (Fernando Grediaga), a doctor and the head of the household, and his wife, Sofia (Marina de Tavira). He is continually leaving for work trips, and Sofia and the kids miss him greatly. Sofia tells the kids that Antonio is leaving on an extended work trip to Canada, but when he finally goes Sofia gives him a long extended hug and begs him not to go. He leaves anyway.
Cleo is dating Fermin (Jorge Antonio Guerrero), the cousin of Adela's boyfriend Ramon. The two couples go on a double date to the movies, but before the movie starts, Cleo and Fermin leave and get a hotel room. After sleeping together, Fermin shows off his martial arts skills to Cleo, telling her how it has disciplined and brought meaning to his life. He professes his love for her. Sometime later, Cleo suspects she is pregnant. At the movie theater, she tells Fermin, and he leaves to go to the bathroom and never returns, abandoning her. Zovek is visible on a television set in a restaurant, pulling a small car using only a strap attached to his teeth. Zorek was a celebrity in 1970s Mexico.
Cleo goes to tell Sofia that she is pregnant, and begins crying, afraid she is going to be fired. Sofia, however, says that's not going to happen and insists on taking Cleo to see a doctor, who confirms that she is pregnant. For Christmas, the family goes to Sofia's brother's estate. The kids wonder if their father is coming, but Sofia says he is stuck in Quebec, Canada.
At the estate, one of the housekeepers tells Cleo about violence lately due to land disputes. During the New Year's celebration, Cleo observes another man hitting on Sofia, but Sofia insists she is a married woman, despite all evidence to the contrary. The festivities are interrupted by a massive fire that has been set by those involved with the land dispute, and the party-goers rush to try to put it out.
Back at home, Cleo takes the children to a movie and sees Antonio frolicking there with another woman. Later, Cleo goes to Ramon to try to find Fermin's location, and he takes her out to the martial arts training area where Fermin is being trained. The organization training camp set up by the United States, three American men are seen training hundreds of youth's martial arts, Fermín is a supporter of Luis Echeverría Álvarez and his initials are seen in the hill in the scene where they are practicing martial arts. In this scene, three Americans are seen and possibly one in C.I.A. disguise.
Cleo tries to tell Fermin she's having his baby, but he denies it's his and threatens to beat her if she ever tries to talk to him again.
At home, Sofia is on the phone with a friend talking about how Antonio is pretending to be in Canada for the children and doesn't even have the guts to tell them, and Paco begins eavesdropping. Cleo tries to shoo him, but Sofia sees and enraged, slaps Paco and yells at Cleo. She instantly apologizes and begs Paco not to tell his siblings.
Teresa (Veronica Garcia), Sofia's mother who also lives with them, takes Cleo to a department store to buy a crib for her baby. Students are protesting outside the building, and the protests turn violent. A man and woman run into the store bleeding and screaming, followed by men with guns who point guns at all the store patrons. They kill the man who was hiding, and we see that the man pointing a gun at Cleo was Fermin. Fermín is posing as a student and is seen as part a resistance group in 1971 which was the Corpus Christi festival. When she sees Fermin involved the shock causes Cleo's water breaks and Teresa rushes her to the hospital, making their way there through horrible traffic caused by the protests. Teresa checks Cleo in, and her doctor can't find a heartbeat, so they rush her to surgery. On the way she sees Antonio - he tells her everything is going to be okay, but when Cleo's doctor says Antonio can go into the operating room he makes an excuse to get out of it. In the operating room, the doctors fight their hardest, but Cleo's daughter is stillborn.
Cleo is despondent and depressed but returns to work. Sofia tells the kids that they are going on a weekend trip to a beach town. She invites Cleo to come, not as a maid, but as a guest, hoping it will be good for her. Cleo declines, but Adela and Sofia eventually get her to agree. They drive out to Tuxpan, and at dinner, Sofia tells the children that their father never went to Canada and that he's not coming home. The weekend trip was so he could get his belongings out of the house. The kids cry and are upset, but Sofia is strong and promises them everything is going to be alright and that it will be an adventure. She tells them she's leaving her professor job and getting a new job in publishing.
At the beach, Sofia leaves for a moment with Toño while Paco and Sofi want to swim. She tells them they can as long as they stay in the shallow end by the shore, because Cleo can't swim. While Cleo is tending to Pepe, she realizes she can't see the other two children in the water. She runs out into the water, despite not knowing how to swim, and goes out to the two children who have been carried out by the current. She rescues them and brings them back to the shore as Sofia and the other children run up in shock. The kids exclaim that Cleo saved them, and the whole family hugs. Cleo begins crying, saying that she never wanted her baby, wracked with guilt. The family keeps hugging her.
Back at home, the family arrives to see much missing since Antonio has cleared it out. The family together begins adjusting to their new way of life, falling back into their usual routine, Cleo along with them, things seeming to get better, everyone coming out of their different pain together.