Sophie (Amanda Seyfried) é uma aspirante a escritora e juntamente com noivo Victor (Gael García Bernal), que sonha em ter seu próprio restaurante, viaja para a Itália. Em Verona, onde se passou a história de Romeu e Julieta, local perfeito para uma lua de mel antecipada, Sophie acaba percebendo que seu noivo está mais interessado nos fornecedores para seu restaurante do que nela.
Na cidade ela descobre uma antiga carta de amor e junta-se a um grupo de voluntárias que responde missivas amorosas. Para sua surpresa, uma remetente chamada Claire Smith (Vanessa Redgrave) ouve o conselho dado na resposta e vai procurar Lorenzo, uma antiga paixão da juventude.
Mas existem muitos italianos com o mesmo nome e Sophie mostra interesse em ajudá-la na tarefa, desagradando o neto Charlie (Christopher Egan) que já tinha reprovado essa louca aventura da avó viúva.