The Storybrooke heroes are out of the Underworld ... but that doesn’t mean they’re in the clear.

Episode 21 of ABC’s “Once Upon a Time” kicks off with Hades (Greg Germann), Zelena (Rebecca Mader) and the baby waiting in the woods for the others to jump through the portal. Zelena wants to go to town to search for them, but Hades warns her that the townsfolk won’t believe that he’s changed. She decides to go into town to explain, and gives Hades the baby so they can wait it out in the mayor’s office.

What Zelena doesn’t know is that Hades hasn’t changed. Shortly after she leaves, King Arthur (Liam Garrigan) comes running from the forest. He’s handcuffed and somehow managed to escape the Storybrooke jail. Unaware of who Hades is, King Arthur tries to get him to help him. Hades has a different idea, though. He tells King Arthur that he needs his help to rule his kingdom and uses magic to snap his neck.

Meanwhile in town, Zelena reunites with Regina (Lana Parrilla) and Robin (Sean Maguire). She’s ecstatic to see her sister again, but they’ve only got one thing on their mind — the baby. Needless to say, they’re not happy to hear that Zelena gave her to Hades.

Regina tries to explain to Zelena that Hades tricked all of them. However, Zelena can’t bear to hear the truth. She decides to disappear in a cloud of smoke to defend Hades when Regina threatens to hurt him.

As things begin to spiral out of control in Storybrooke, King Arthur awakes in the Underworld. He has no idea where he is. Fortunately, Hook (Colin O’Donoghue) is there to explain everything — and demand some answers. He can’t seem to move on, and he knows it’s because Emma (Jennifer Morrison) is in danger. When King Arthur reveals it was Hades who killed him, Hook enlists his help in tracking down the storybook pages that expose the god’s weakness. And while King Arthur isn’t exactly interested in helping Hook, he agrees to when Hook tells him he’ll get closer to moving on.

Traveling underground to Hades’ lair, Hook and King Arthur unsuccessfully tear the place apart. Hook begins to get frustrated and explains to King Arthur that he promised Emma he’d move on but can’t until he knows she’s safe. That inspires King Arthur to look around Hades’ throne, where he finds a secret door hiding the storybook pages. Now all they have to do is get the pages to Emma.

Back in Storybrooke, Zelena returns to Hades to explain what’s going on. Hades offers to turn himself in, but Zelena doesn’t want to lose him again. Instead they decide to defend themselves. Zelena sets up a protection spell and Hades gets to work uniting the Olympian Crystal, a powerful and dangerous piece of magic that will make them untouchable.

Regina and Robin figure out that Zelena put a protection spell on the mayor’s office and use a secret tunnel to get inside. It’s there that Regina apologizes to Robin for letting Zelena take the baby. Robin accepts, but gets frustrated when Regina begins to defend her sister. However, the two set their differences aside before facing Hades and Zelena.

Elsewhere in town, Gold (Robert Carlyle) goes to see Belle’s (Emilie de Ravin) father to get him to wake her from the sleeping curse. But he’s not interested in helping the Dark One, even if it means his daughter remains under a spell. Gold threatens to kill him, but Emma shows up before he can act on it.

Emma wants Gold to tell her how to defeat Hades. Gold doesn’t give out information for free, though. He leaves her to figure it out on her own. Fortunately for her, Hook is hard at work getting her the pages. Cruella (Victoria Smurfit) destroyed the phone book that would allow Hook to “haunt” Emma, but there is still the storybook. The catch is that Cruella put it in the middle of the river of souls.

Hook and King Arthur take the boat to fetch the book, and after fighting off a few demon souls, manage to put the pages back inside. They magically appear in the storybook in Storybrooke, giving Emma the information she needs — the way to defeat Hades is to use the Olympian Crystal on him.

Emma immediately sets off to attack Hades. What she doesn’t know is that Regina and Robin are already on the inside. Fortunately she’s able to be a distraction, allowing Robin and Regina to rush in and grab the baby with Zelena and Hades out of the way. However, they don’t have enough time to escape the building. While Zelena is outside confronting Emma, Hades returns with the Olympian Crystal in hand. Threatened by Regina’s power over Zelena, Hades reveals that his plan is to use the crystal to kill Regina and rule Storybrooke. He turns the crystal on Regina, but Robin jumps in front of it before it can strike her. The crystal hits Robin and kills him right in front of Regina.

Hades is about to kill Regina when Zelena returns with the pages from the storybook. She’s shocked to find Robin dead on the floor, and doesn’t know who to believe. Regina tries to explain the truth, but Hades argues that she’s lying. Regina takes advantage of the moment and lunges at Hades. She manages to knock the crystal out of his hand, but Zelena gets to it first. Hades encourages her to use the crystal on Regina. However, Zelena finally begins to see the truth. After listening to Hades she realizes that he didn’t change and never will. She swiftly plunges it into his chest, killing the god of death and turning him into a pile of dust.

Meanwhile in the Underworld, a light shows up when Hades is defeated. Hook realizes it’s time to move on and asks King Arthur to come with him. But King Arthur realizes he’s got a bigger purpose. He says he’s going to stay behind and repair the broken kingdom that is the Underworld.

Hook says goodbye and walks through the light. When he passes through he finds himself face to face with Zeus (David Hoflin). Zeus thanks Hook for helping destroy Hades and tells him it’s time to move on.

Back in Storybrooke, the town gathers to say goodbye to Robin. It’s there that Regina and Zelena decide to name Robin’s baby daughter after him.

Everyone leaves the cemetery except for Emma. She needs a few moments to grieve, but that’s short-lived. Hook magically appears behind her thanks to Zeus. The details are foggy but Emma doesn’t care. She’s just happy to have Hook back.

It’s a somewhat happy ending, but trouble is brewing. Episode 21 concludes with Gold pulling a piece of the Olympic Crystal from the remains of Hades. As for what he wants to do with it? “Once Upon a Time” fans can assume that Gold is up to no good.