Once Upon a Time gave us a blast from the past this week with the return of Jared Gilmore as young Henry!

The last time we saw adult Henry (Andrew J. West), he was sharing true love's kiss with Jacinda (Dania Ramirez) after both of them finally started to believe that this whole fairytale thing was real. And then... nothing happened. Literally nothing.

Sure, Henry didn't keel over dead like he was supposed to after kissing his true love — thanks for nothing Drizella (Adelaide Kane) — but the curse didn't break. Unfortunately, that meant Henry went back to his non-believer ways, leaving Regina (Lana Parrilla) and Lucy (Alison Fernanez) to cook up another idea on how to wake him up.

Regina tried a spell of her own as well as digging up Victoria's grave to find the story book and have Henry touched. Her impassioned plea about needing him to wake up didn't work either. It turns out that what adult Henry needed was to get in touch with his younger self, literally.

Finale Preview: What to Expect From Your Favorite Shows

Gothel's (Emma Booth) curse didn't just put everyone in a world without magic, but also back in time. Everyone was trapped at the time of young Henry's high school graduation. Regina handed adult Henry his adoption papers to prove they were connected, but it also held the phone number for past-Regina and young Henry (Jared Gilmore) in Storybrooke. Out of curiosity, adult-Henry called the number and speaking to his former self is what broke the curse! Twiiiiiiist!

Henry's awakening almost came too late. When Henry refused to listen to her, Regina went after Gothel herself and almost perished for it. Luckily, Henry was able to find her in time and in tribute to the Season 1 finale, true love's kiss between mother and son not only woke Regina up but broke the curse for all of Hyperion Heights. In the end it was Alice (Rose Reynolds), freed from Gothel's spell, who stood up to her mother and saved everyone from the apocalyptic storm that Gothel was churning up though — because that's the power of love, y'all.

However, with two episodes still left in the season everything couldn't end happily ever after yet. The fairy tale heroes will have to face Rumpelstiltskin (Robert Carlyle) in the two-part series finale. No, not Mr. Gold but rather the Dark One version who broke free from the wish realm Gold banished him to a while ago. Rumple returned and killed Dr. Facilier, leaving Gold no choice but to face off with the most evil version of himself in order to complete his quest to reunite with Belle (Emilie de Ravin) in the afterlife. According to the preview for next week's episode, Gold and his family will call on the rest of the Storybrooke clan to help with this massive task.

Can they ban together and finally defeat the Dark One before Once Upon a Time officially says goodbye?

Once Upon a Time airs Fridays at 8/7c on ABC.

Jared Gilmore and Lana Parrilla, <em>Once Upon a Time</em>Jared Gilmore and Lana Parrilla, Once Upon a Time