It's 1922 and Frida Kahlo (SALMA HAYEK) is a student in Mexico City who enjoys hanging out with her boyfriend, Alejandro Gomez Arias (DIEGO LUNA), and spying on legendary local artist Diego Rivera (ALFRED MOLINA) fooling around with his nude model.
Yet, a bad bus accident soon leaves Frida horribly injured and her parents, Guillermo (ROGER REES) and Matilde (PATRICIA REYES SPINDOLA), and sister, Cristina (MIA MAESTRO), fear she may never walk again. Things get worse when Alejandro announces he's off to study and then live abroad, leaving Frida all alone and bed-ridden.
To console her, Guillermo brings her an easel and canvas she can use in bed and Frida then teaches herself how to paint, although her initial subject is herself in various self-portraits. Once partially healed and able to walk again, she approaches Diego and asks if he'll look at her paintings.
He's impressed and soon introduces her to a variety of other artists including photographer Tina Modotti (ASHLEY JUDD) and painter David Alfaro Siqueiros (ANTONIO BANDERAS). She also meets Diego's ex-wife, Lupe Marin (VALERIA GOLINO), who still isn't over him and is obviously jealous of Frida.
Nevertheless, she and Diego are soon married, she joins him in the communist party, and their tumultuous professional and private lives begin. Despite his affairs, their various fights and a well-publicized run-in with Nelson Rockefeller (EDWARD NORTON) over a controversial mural in Rockefeller Center, the two remain together. They eventually host exiled Russian leader Leon Trotsky (GEOFFREY RUSH) and his wife, Natalia (MARGARITA SANZ).
With time passing and the strain on their relationship growing, the two then try to figure out what they want and whether that includes each other.