Vicky (Rebecca Hall) and Cristina (Scarlett Johansson) are best friends, but have completely different attitudes towards love. Vicky is sensible and engaged to a respectable young man. Cristina is sexually and emotionally uninhibited, perpetually searching for a passion that will sweep her off her feet.
One night on holiday in Barcelona, Cristina, true to form, locks eyes with the intense and provocative Juan Antonio (Javier Bardem), a handsome painter. Cristina is only more intrigued when she learns that Juan Antonio had such an explosive relationship with his ex-wife Maria Elena (Penélope Cruz) that one of them tried to kill the other.
When Juan Antonio invites the two girls to stay with him, an excitable Cristina drags a reluctant Vicky along with her on the romantic adventure. However, before long plans go awry when the tempestuous Marie Elena makes a dramatic reappearance.