When Zelena has the Dark One threaten to kill Robin Hood's son, he has no choice but to turn over Regina's heart on Once Upon a Time Season 3 Episode 18. It drives Regina to cast a spell to see why her mother gave up Zelena in the first place.
It turns out that Cora became pregnant by a gardner who claimed to be a prince and then refused to marry her. Prince Leopold came along and fell for Cora but had to break off his arranged marriage to Princess Ava.
When Ava found out Cora's secret, she told Leopold the truth and he banished Cora, who abandoned Zelena in the hopes of one day being more than a miller's daughter.
Back in Storybrooke Snow and Regina bond as they learn about their mother's past and Belle figures out that Zelena plans to use Snow's baby to go back in time and kill Ava. If she can do that, Cora will have no reason to give her up and Snow, Emma, and Henry will never be born.
Finding her courage, Regina finds Robin Hood and kisses him.
If you need more magic, you can watch Once Upon a Time online here at TV Fanatic.
C. Orlando is a TV Fanatic Staff Writer. Follow her on Twitter.