Dividida em duas fases, a história de Alma Gêmea começa ambientada na década de 20. A novela mostra o amor entre Rafael (Eduardo Moscovis), um botânico que cria rosas, e Luna (Liliana Castro), uma jovem bailarina. Quando os dois se conhecem é amor à primeira vista. Um amor tão forte que, em pouco tempo, eles se casam e têm um filho, Felipe (Sidney Sampaio).
No entanto, alguém muito próximo está disposto a fazer de tudo para separá-los: Cristina (Flávia Alessandra), a prima pobre de Luna que morre de inveja do casal. Para se vingar, ela planeja um assalto a Luna. Na noite em que o plano é colocado em prática, a bailarina leva um tiro dos bandidos e não resiste.
Arrasado com a morte da esposa, Rafael se torna um homem muito infeliz. Perde o amor pela vida e vive solitário, preso dentro de casa. O que o botânico nem imagina é que, Serena (Priscila Fantin), uma jovem índia mestiça, vai chegar à cidade de Roseiral e despertar sua atenção.
Serena consegue um emprego como faxineira na mansão de Rafael e, a partir de então, estranhos fenômenos começam a acontecer e a dar a sensação em muitos que conviveram com Luna, inclusive no patrão, de que a bailarina está de volta. O botânico tenta resistir por um tempo, mas, mesmo sem saber o que ocorre, resolve seguir seu coração.
Assim se inicia a história de amor entre Rafael e Serena, uma trama envolta em mistério e marcada por fatos surpreendentes. No entanto, Cristina, mais uma vez, não mede forças para impedir o romance. Revoltada, Cristina tenta destruir todos que estão em volta do casal e começa a despertar suspeitas em Rafael.