New York, begin jaren '50. Therese Belivet (Rooney Mara) werkt in een warenhuis in Manhattan en droomt van een meer vervullend leven als ze Carol Aird (Cate Blanchett) ontmoet, een verleidelijke vrouw die gevangen zit in een mislukt huwelijk. De vonk slaat onmiddellijk over en als de onschuld van hun eerste ontmoeting vervaagt, wordt hun verbondenheid dieper.
Wanneer Carols verhouding met Therese aan het licht komt, neemt Carols echtgenoot wraak door haar geschiktheid als moeder aan te vechten. Carol en Therese voelen zich gedwongen te vluchten en gaan op reis door Amerika. Een onverwachte gebeurtenis gooit hun levens overhoop.