Maria Bennett (Naomi Watts), her husband Henry (Ewan McGregor) and their three sons Lucas (Tom Holland), Tomas and Simon are on holiday over Christmas at a tropical paradise resort in Khao Lak, Thailand. However, the devastating 2004 tsunami, which occurred on 26 December 2004, destroys the coastal zone, and they are swept up in the flood - a flood which captures Maria searching for a lost page of a book against a glass window while the rest of the family is near the pool.
Maria and Lucas are separated from the others and Maria's leg is badly injured. At Maria's insistence, they rescue a small boy called Daniel who has also been separated from his family. The three climb a tree in case a new wave approaches. They are found by locals and taken to a hospital - Maria on a door used as a stretcher. Maria, who is a doctor, is concerned about her leg, and asks Lucas to tell her if it turns black. She encourages Lucas to see if he can provide any help to the others. Lucas takes names from patients and searches for their relatives. When he returns to Maria's bed she is not there, and due to a mix-up, the hospital staff believes she has died and takes Lucas to a tent where other children without families are being held; a phone call can be made, but Lucas does not remember the number of his grandpa. In fact, Maria has surgery on her torn chest and is later reunited with Lucas.
Elsewhere Henry, Tomas, and Simon are together and safe. Henry asks Tomas to look after his little brother then places the children into a vehicle full of tourists who are being taken to a safe place in the mountains, while he keeps searching for Maria and Lucas. Later, Henry arrives in the mountains and finds Tomas and Simon have been sent elsewhere. Communication facilities are scarce, but another man, German tourist Karl, allows Henry to make a phone call to his father-in-law Brian in the UK. Henry uses the phone only to break down in the midst of the call. Maria and Lucas have not contacted the family, so Henry doesn't know they have survived. Karl then volunteers to accompany Henry to look for his wife and son.
Henry and Karl search for their missing families in various shelters and hospitals before they arrive at the hospital where Maria and Lucas are. Unbeknownst to all, the entire family is miraculously in the same place. Henry walks past Maria's ward, and she appears to recognize his shadow against the curtain of her ward, but is too weak to call out. Lucas spots his father (recognizing his shorts and bloody legs) in the distance, but immediately loses sight of him, and takes chase. Simon recognizes Lucas's voice when he shouts for his father. Tomas and Simon leap off a truck transporting lost children just in time to reunite with Lucas, and at the same moment Henry stumbles across all three of his sons and Lucas tells him their mother is in the hospital.
They find Maria, who appears to be on the verge of death and needs immediate surgery. She survives the surgery, and the following day a representative of their insurance company arrives to fly them to a hospital in Singapore in a small plane. Lucas tells Maria that the boy they rescued, Daniel, has been reunited with his father. As they take off, Maria is shown viewing the devastation of the tsunami from the plane window, and she begins to weep.