On Once Upon a Time Season 3 Episode 20, Glinda offers Zelena a seat at the Sister Witches table and the pendant that strengthens her magical power. But if she loses it, she will lose her power.
When Dorothy arrives, Zelena becomes envious and tricks her to get her back to "Kansas" Then she banishes Glinda and embracesher wickedness.
In Storybrooke, Zelena tries to drown Hook. Emma must give him mouth to mouth and in doing so, loses her magic when their lips meet. Later, Zelena steals the Charming's newborn baby boy.
Regina is able to stop Zelena's spell by using light magic, thanks to Henry and Robin Hood's love and encouragement. Then she shows mercy by not killing Zelena but putting her in jail.
Then Belle gives Rumpelstiltskin back his dagger saying she trusts him. He gifts it back to her and asks her to marry him. Belle says yes but doesn't realize that he's given her back a fake dagger. Rumpel heads to the jail and secretly kills Zelena.
Hook is heartbroken when Emma says she still plans to leave Storybrooke and go back to New York.
If you need more magic, you can always watch Once Upon a Time online here at TV Fanatic.