故事發生在一座荒無人煙的小島之上,為了逃離塵世的喧囂,環保主義者杰克(丹尼爾·戴-劉易斯飾)帶著女兒蘿絲(卡米拉·貝勒飾)生活居住在這里。一轉眼,蘿絲已經十六歲了,就在此時,杰克發現自己患上了重病,他開始為女兒的未來做打算。杰克找來了自己的前女友凱瑟琳(凱瑟琳·基納飾),她帶著自己的兩個兒子來到了島上,開始了和蘿絲的"同居生活"。然而,蘿絲卻將凱瑟琳的到來看做是一種背叛和挑戰,陷入憤怒的情緒之中無法自拔。面對女兒日益加劇的心理危機,杰克通過組織家庭協作活動引導雙方建立溝通,在共同應對海島生存挑戰的過程中,凱瑟琳展現出的責任感逐漸消解了蘿絲的敵意。隨著三人共同修復被風暴摧毀的木屋,這對原本對立的母女繼替關系終于達成和解。當杰克的病情因家庭氛圍改善出現轉機時,凱瑟琳主動提出長期留在島上共同撫養兩個家族的孩子們。