ABC’s Once Upon a Time season six episode 13 opens with a flashback to the First Ogres War. The men are frightened of the upcoming battle, but Beowulf (Torstein Bjørklund) is certain they’ll be victorious because he wields the enchanted sword, Hrunting. The war begins, Beowulf leads the charge and, as promised, his sword proves deadly to the ogres. However, even with the special sword and archers shooting fiery arrows, the ogres have the upper hand. Beowulf and his men fight on until it’s down to a one on one battle between Beowulf and a massive ogre. Beowulf loses his sword and just as he’s about to be killed, Rumplestiltskin (Robert Carlyle) shows up and slays the remaining ogres.
Back in Storybrooke, Hook (Colin O’Donoghue) is drowning his worries in rum. Archie (Raphael Sbarge) joins Hook at the diner’s counter and Hook admits that David gave his blessing, but now there’s a new problem. He confesses he found out something horrible about his past and although he should keep it a secret, he wants to tell Emma. But if he reveals what he did, she probably won’t marry him. Archie suggests he confess and see what happens.
Rumple, Mother Superior/Blue Fairy (Keegan Connor Tracy), and Belle (Emilie de Ravin) search the woods for Gideon (Giles Matthey), but Rumple thinks that Gideon is looking for the shattered sword to kill the Savior. Rumple promises to find Gideon before he gets his hands on the sword.
Back to the Ogres War where the army and townsfolk cheer Rumple for killing the ogres, and even Baelfire (Brandon Spink) is impressed. Beowulf, who towers above everyone crowded into the tavern, reveals Rumple was only able to defeat the ogres because he’s become the Dark One. Beowulf says everyone will pay dearly for this, and Baelfire admits he’s worried and wants Rumple to give up the dagger and stop using dark magic. Rumple promises his son to never use dark magic again.
Back in Storybrooke, Gideon breaks into the sheriff’s office and into the safe where he finds the hilt of the broken sword. Rumple shows up just as Gideon steals the sword and puts his son to sleep before he can leave with the sword’s hilt.
Meanwhile, Regina (Lana Parrilla) catches up with Robin (Sean Maguire) who has stolen her box of potions. He hides them before she sees what he’s done and apologizes for going off on his own, saying he’s just having a hard time getting used to this world.
And back to Gideon and Rumple we go… Rumple has tied up Gideon in the clock tower, telling him he won’t let him kill the Savior. Rumple explains he became the Dark One to end the Ogres War and that once you give into darkness, you can’t turn back. Gideon asks about stealing Emma’s light magic while Rumple continues to tell him the sword is just a useless relic. He doesn’t want Gideon to kill the Black Fairy because it will cost Gideon his soul. “Giving into darkness can only lead to heartbreak,” says Rumple.
Returning to the past, Baelfire comes home with his face messed up and Rumple is about to have a word with the person responsible when the townsfolk arrive at his door. They need help fighting the monster, Grendel, but Rumple says he promised his son he won’t use magic. Baelfire believes his dad can defeat the monster without dark magic and that this battle would prove to everyone he’s not a “slave to that dagger.”
The story shifts to Robin paying a visit to Zelena (Rebecca Mader). She’s startled to see him seated at her kitchen table and pissed he’s in her house. He swears he’s not there for their baby and shows her Regina’s potions, telling her he wants to leave Storybrooke. If she gets rid of the protection spell, he can leave and return to his old ways. He thinks Zelena also wants to leave and is ready for some new friends. She smiles and asks, “When do we leave?”
Rumple asks Gideon what the Black Fairy did to make him think killing the Savior is the only way to become a hero.
Rumple and Baelfire go in search of Grendel and Baelfire’s disappointed when he learns Rumple brought the dagger with him. Rumple says he can’t imagine living without the power the dagger gives him, however he hands the dagger over to his son telling him to stop him if he tries to use it.
Gideon’s now untied and he explains why he hates the Black Fairy so much. She challenged his desire to be a hero, punishing another boy and leaving Gideon’s cell door open while the boy cried in pain. Gideon didn’t help the boy and that means he didn’t have what it takes to be a hero. He asks his dad to help him show Belle she’s wrong about them both and that they can be heroes. Rumple agrees and after Gideon takes a sip of tea, he feels strange. Rumple explains it’s a potion to wipe away his memories of the Black Fairy, but Gideon was faking it and wasn’t affected by the drink. Gideon grabs Rumple’s dagger before Rumple can figure out what’s going on, ordering his dad to help him fulfill his destiny.
Rumple and Baelfire make it to Grendel’s cave and find it littered with dead bodies. Beowulf sneaks up and disarms Baelfire of the dagger, and Baelfire tries to convince him they should fight Grendel together. It turns out Beowulf killed the villagers and he’s just tricked Rumple and Baelfire into falling for his trap. He’s going to pin the villagers’ deaths on Rumple and make himself a hero. Rumple tells Baelfire to run and Beowulf commands Rumple to stay exactly where he is.
In Gold’s shop, Gideon learns he needs the blood of the person who forged the blade to fix the sword and fulfill his destiny. He hesitates when Rumple tells him the Blue Fairy (his fairy godmother) forged the blade, but ultimately decides his desire to kill the Black Fairy is stronger than his feelings about the Blue Fairy. He uses the dagger to command his dad not to get in his way.
Over at the county line, Zelena, her baby, the Evil Queen who’s now a snake, and Robin are ready to use the potion when Regina shows up and tells them it won’t work. She’s angry Robin deceived her and stole her magic, but she was right when she said the potion wouldn’t break the protection spell. Robin says he can’t be her Robin and he’ll never be able to live up to that Robin’s legacy. Regina tells Robin that she’ll do whatever she can to find a way to break the protection spell so he can leave, saying she owes it to both Robins.
Beowulf catches up with Baelfire and they’re ready to fight when Baelfire uses the dagger to summon his dad. Rumple tosses Beowulf against a tree, telling Beowulf he’s going to take him back to the village and tell the truth. Baelfire says Beowulf is the monster and the one who should pay, and when Beowulf tosses the boy aside as he’s leaving, Baelfire uses the dagger to make Rumple kill Beowulf even though it’s obvious he doesn’t want to.
Gideon finds Mother Superior and she’s happy to see him, apologizing for not being able to protect him as a child. He wants her to repair the sword even though it will take all of her magic to do so. Gideon freezes her in place and is about to cut her hand when Rumple interrupts. He can’t stop Gideon (he was commanded to stay out of the way), but he can take Mother Superior’s magic from her so his son won’t have to. He drains the fairy and the sword is restored to one piece. He tells Gideon they’ll defeat the Black Fairy together, but Gideon will not use dark magic to do so. Gideon thanks his dad and hands him back the dagger.
Back in time, Baelfire still has the dagger and he’s not sure what to do about it. He likes the power it has and he believes it’s the only way to protect them. Rumple hands him a cup of tea containing the memory potion. Unaware of what’s in the tea, Baelfire takes a sip and losses his memories of what happened in the cave. He doesn’t remember what happened to Beowulf or how they escaped. When he sees Beowulf’s sword, he’s angry his father killed Beowulf. (It’s a truly heartbreaking scene!) He races from their home, saying his dad’s turning into a monster.
Belle demands to know what’s wrong with Mother Superior and why Rumple didn’t stop Gideon from doing something horrible. Rumple reveals he drained Mother Superior to makes sure their son didn’t turn dark. Rumple promises after they stop Gideon, he will return the Blue Fairy’s magic. Both realize Gideon will be going after Emma again, but they hope they can stop him before he does. Belle tells Rumple that if he can make the right choice after all he’s done, that means there’s hope for Gideon. Belle’s obviously impressed with Rumple and they hug.
Over at the diner, Hook’s been downing rum and he’s finally worked up his nerve to go home. Emma (Jennifer Morrison) is there and happy to see him. They kiss and she immediately smells the rum on his breath, and he confesses he needed the courage to tell her something important. Hook struggles to tell her his secret and Emma jumps ahead and says her answer would be yes, if he popped the question. Hook looks stunned and Emma reveals she found the engagement ring. She asks if he’s mad and he says of course he’s not. She reminds him they don’t have any secrets. Hook gets down on one knee and asks if she’ll marry him. She says yes and they kiss…a deep, lengthy, passionate kiss…followed by a hug. Hook looks confused and torn.
Zelena returns the Evil Queen to Regina and she apologizes for trying to help Robin escape. Regina says it’s her fault because she failed the test. When she saw Robin in the alternate world, she should have let him be. She lifts the cover on the snake’s cage and she’s disappeared.
The scene shifts to the snake wrapping herself around Robin and then biting him. The Evil Queen’s freed from being a snake because Robin had some anti-magic potion stuck to him. He’s confused, believing this is Regina. She explains she’s the Evil Queen and Robin tells her all he wants to do is leave Storybrooke. However, the Evil Queen tells him she’ll be his new tour guide, assuring him he’ll have a whole new appreciation of what Storybrooke has to offer with her guiding him around town.