SPOILER ALERT: This post contains details about Friday’s episode of Once Upon a Time.

Once Upon a Time fans are all up in their feelings that ABC’s fairytale extravaganza is coming to an end — but there is no need to shed any tears tonight, because there are two episodes left until we say good by to Roni, Henry, Hook, Alice, Tiana and the rest of the gang. With tonight’s penultimate episode appropriately titled Homecoming, they are setting up a magical battle that could make for an epic explosive finale that could either be a happily ever after, or a tragically ever after.

ABC

The episode begins with a flashback featuring young Henry (Jared S. Gilmore) about to rescue a sleeping princess with a true love’s kiss. As he is about to plant one on her, a fire-breathing dragon comes out and attacks. Just when he is about to slay it, some knight bro comes out of nowhere and steals his thunder and the girl.

Frustrated, Henry stomps off and Rumplestiltskin (Robert Carlyle) comes in to save the day. He knows that Henry wants to find his happy ending and Rumple says that he can show him the way — for a price, of course. Henry says, “No thanks,” while Rumple is all, “We’ll see.”

Back at Hyperion Heights, everyone is living their best lives now that the curse has been lifted. They are eating beignets, hanging out at coffee shops, making casual jokes about not being cursed anymore, and doing happy-go-lucky things — that is, until older Henry (Andrew J. West) gets a visit from Rumple.

Big, bad glittery-faced Rumple (who is in desperate need of a manicure and some hand lotion) makes Ella (Dania Ramirez) and Lucy (Alison Fernandez) disappear. Henry is all “WTF!” and Rumple says if he ever wants to see them again, he has to get him the Dark One’s dagger. And with that, Rumple disappears.

ABC

Henry solicits the help of Roni (Lana Parrilla), Hook (Colin O’Donoghue), and Weaver (Carlyle) to go back to the Wish Realm to stop the evil ways of Rumple. They go back and Roni and Henry end up in Rumple’s castle, while Hook and Weaver end up near Rumple’s digs. Each set has to deal with two obstacles: Rumple reveals that he has miniaturized Bella and Lucy and imprisoned them in a snow globe that can’t be undone by Roni’s magic. Weaver deals with his own meta inner-crisis of killing Rumple for the greater good — and in essence, he would be kind of killing himself. Yeah, this intersection of Wish Realm/Storybrooke/Hyperion Heights has grown to be a little bit convoluted and puzzling. Kind of like Lost, but lighter on the existentialism.

It is clear that Homecoming was just an hour setup to a bigger and badder series finale that will essentially give OUAT the happily ever after it deserves. Tonight’s episode gave some Buffy the Vampire Slayer vibes, as the fairytale get-along-gang banded together to fight an evil that is threatening the existence of these fairytale characters that are now normal people, but still like to remember that they were at one time part of a fabled world of magic and enchantment. Again, it gets a little bit convoluted, but who cares? It’s fun and fans are devouring this frothy fantastical world like its Tiana’s beignets.

There weren’t any huge spoilers that came out of this episode. There were some events that caused some minor gasps — but it is nothing really to faint over. Hook and Weaver solicit the help of Ariel for some squid ink to fight Rumple, but that backfires. And then there is this wildly corny sword fight between Cruella de Vil and Henry. She seemed to be shoehorned into the episode and random, but I guess she moved the story forward an inch or two.

ABC

But the big moment is when Henry figures out a way to get Bella and Lucy out of the snow globe: the Author’s Pen. He retrieves the pen from the pen keeper, who you may recognize as Apprentice. He is blind but recognizes Henry’s “complex story” and hands over the pen to Henry and tells him to “record the stories, not create them,” and then insists that he choose wisely when telling his story.

That brings us back to Rumple’s castle, where another session of bargaining takes place. Henry is about to free his family with the pen, but Rumple, being the obnoxious buttinski he is, swipes the Author’s Pen. Henry reminds him that no one else can use it but him — and Rumple knows that. Everyone’s face cracks when young Wish Realm Henry enters the room. He agreed to help Rumple. Yup. He’s screwing over himself to get his own happy ending.

Young Henry starts writing “The powers of the guardians are no more.” Hook and Weaver disappear, and Roni is left behind because young Henry has a score to settle with her.

Meanwhile, Alice and Robin are back in Hyperion Heights and they feel that something has gone wrong in the Wish Realm. They solicit the help of Tiana (Mekia Cox) to get them to the Wish Realm. Tiana gathers the citizens of Hyperion Heights/her kingdom to see if anyone has any magic to open a portal. Remy steps forward and gives them a magic bean, which then opens a portal. Alice and Robin drive into it in a food truck, saying they have to make a quick stop to get some help from friends before heading to the Wish Realm.

They enter the portal and drive pass a “Welcome to Storybrooke” sign and the episode ends, giving us a soft cliffhanger. It looks like the finale of OUAT is going to be the Infinity War of the series, with the fairy tale characters as the Avengers and Rumple as Thanos. We’ll just have to see if next week’s finale will be as spectacular and, more importantly, if it will satisfy and resonate with fans.