Artist Charles Ryder (Matthew Goode) is befriended by flamboyant Sebastian Flyte (Ben Whishaw), a young aristocrat from a wealthy and devoutly Catholic family. Sebastian invites Charles to his family’s home, Brideshead, for a summer. Sebastian develops strong feelings for Charles but Charles is drawn to Sebastian’s sister, Julia. While on a holiday to visit Sebastian’s father in Venice, he witnesses Charles and Julia in an intimate embrace and is devastated. When they return to Brideshead, Sebastian’s mother, Lady Marchmain (Emma Thompson), suspects something happened in Venice. Knowing that Charles isn’t a Catholic and therefore isn’t worthy to be with Julia, she asks him to leave. Sebastian retreats to Morocco where he succumbs to a life of alcoholism and breaks ties with Charles. Charles also loses contact with Julia after it is announced that she is engaged to another man.
Months later, Sebastian’s dying mother asks Charles to go to Morocco to bring him home but when he arrives, Charles finds that Sebastian is very ill and he doesn’t want to return to England. Years later, Charles has become a successful artist and is married. He runs into Julia for the first time in over 6 years and their attraction is still strong. They share a passionate night together and decide that they love each other and want to be together. They go to Brideshead to persuade Julia’s husband to give her an annulment. He agrees and as they are ready to depart for good, Julia’s dying father arrives at Brideshead to live out his final days. Long separated from his wife and the Catholic church, the father initially refuses a priest to perform last rites on him but relents shortly before his death. Seeing that her father was redeemed in the eyes of God, Julia realizes she can’t turn her back on her faith and live in sin with a non-Catholic man. She and Charles part ways.
Years later, Charles returns to Brideshead which is now a base camp for soldiers as WWII breaks out and he reflects on all that happened at Brideshead in years past.