Javier Bardem (Juan Antonio) y Penélope Cruz (María Elena) interpretan a una pareja divorciada en la película. En realidad, comenzaron una relación mientras trabajaban en la película y se casaron en julio de 2010. Sin embargo, no se conocieron en el set de esta película; se conocieron en el set de la primera película de Cruz, Jamon Jamon (1992) cuando ella tenía 16 años.
Woody Allen escribió las partes de Cristina y Juan Antonio con Scarlett Johansson y Javier Bardem en mente. Aparentemente, Bardem fue su primera y única opción para el protagonista masculino.
Para las escenas en las que Juan Antonio y María Elena se hablan en español, se animó a Javier Bardem y Penélope Cruz a improvisar.
Vicky Cristina Barcelona se basó en un guióon que Woody Allen escribió originalmente años antes, que se desarrollaba en San Francisco. Como su acuerdo para esta película especificaba que debía filmarse en España, Allen buscó una historia de sus archivos que pudiera reescribirse para un escenario español, tomó su antiguo guion ambientado en San Francisco y lo reescribió para que tuviera lugar en Barcelona.
Para su breve escena de manejo en esta película, Javier Bardem recibió horas de instrucción de manejo y, para cuando terminó la película, aún no tenía una licencia de conducir.