This week’s Arrowverse episodes were Supergirl 2×22 “Nevertheless, She Persisted,” The Flash 3×23 “Finish Line” and Arrow 5×23 “Lian Yu.” We recap the week in superheroes on The CW!

‘Supergirl’ 2×22 ‘Nevertheless, She Persisted’

“Nevertheless, She Persisted” was an uneven finale that closed out a bumpy sophomore season. We began with a fight between Supergirl and Superman, as Rhea used Silver Kryptonite to hypnotize Clark into believing he was fighting Zod. Though the Supers were evenly matched, Kara just came out on top.

Tyler Hoechlin’s Superman was a highlight of this season. It’s been wonderful to see a version of the Man of Steel that feels true to the spirit of the comics.

Kara eventually challenged Rhea to one-on-one combat with the fate of the Earth resting on the outcome. Rhea agreed, but she had no intention of keeping her promise. Unfortunately, this fight was not nearly as well choreographed or edited as the fight between cousins.

The Daxamite invasion continued, leaving the others to fight Daxamites on the street. M’gann even arrived to revive J’onn from his coma and bring other White Martians to help. Weirdly, James didn’t join in on the fight as Guardian. In fact, his presence in the episode was blink-and-you-miss-it.

The only solution left was to use a Lex Luthor-designed and Lena-modified device to expel lead into the Earth’s atmosphere, making it inhabitable to all Daxamites. While Rhea died, Mon-El had to leave in the pod he arrived in. After striving to become a hero all season, Mon-El proved his worth by sacrificing his happiness to stop the rest of his people from taking over Earth.

Mon-El was eventually swallowed by some kind of hole; I assume this is meant to be the Phantom Zone, in a nod to Mon-El’s story in the comics in which he is placed in the Phantom Zone to escape the effects of lead poisoning and is awakened after 1000 years.

We closed with Maggie proposing to Alex and Cat Grant revealing (though not to Kara herself) that she knows Kara is Supergirl.

‘The Flash’ 3×23 ‘Finish Line’

Surprise (or maybe not so much)! Iris wasn’t dead after all. The person dying in Barry’s arms turned out to be H.R., using his transformation device. Feeling guilty for being the one to give up Iris to Savitar, H.R. found Iris and switched their appearances. This twist meant that Savitar would eventually cease to exist since Barry would not create time remnants in his grief, thus creating Savitar.

However, Savitar wasn’t worried. He forced Cisco to modify the Speed Bazooka so once he was shot with it, he would exist at all points in time simultaneously. Meanwhile, Barry tried to convince Savitar to return to S.T.A.R. Labs with him so Team Flash could help him.

Savitar went along with him, seemingly affected by Barry’s words. I was affected when Iris touched his cheek and he melted. However, it was all a ruse so Savitar could destroy S.T.A.R. Labs.

Once the modified Speed Bazooka was complete, in a sequence that made no sense, Savitar opened a portal and had Killer Frost destroy Black Flash with her cold, calling it his only weakness. If only Eobard Thawne had known about that on Legends; it’s not like he recruited a guy with a cold gun or anything…

Anyway, Savitar’s plan went to hell as Cisco and a newly-arrived Gypsy rescued Jay from the Speed Force and Team Flash fought. Even Killer Frost, channeling her inner Caitlin, defected. Barry eventually pushed Savitar out of his suit and knocked him down — but not out. With moments left to live, Savitar tried to attack Barry, but Iris shot and killed him. He then disappeared from existence.

After H.R.’s funeral, Central City was attacked by the Speed Force; the speed prison has been emptied so needed a speedster to take Jay’s place. Barry recognized the whole thing with Savitar was his fault and sacrificed himself; his race was finished.

‘Arrow’ 5×23 ‘Lian Yu’

In an episode five years in the making, “Lian Yu” brought Oliver’s journey full circle. Not only did we get to see Oliver defeat Kovar so he could put his disguise on and signal the boat from the pilot, but we also got one of the most emotional moments as Oliver called his mother, telling her he’s alive and coming home.

It was delightful to see Moira again, and her realization that she was really talking to Oliver was nothing short of exquisite. The relief in Oliver’s voice in return culminated the journey he’d been on for the five seasons of flashbacks. He’d been through hell and now will come home to become the man we met five years ago in the pilot.

We also saw the return of Slade Wilson, who is no longer crazed by Mirakuru. The script expertly plays at our doubts about trusting Slade, as he appeared to betray Oliver more than once, only to reveal it was all part of a greater plan. The Oliver/Slade dynamic felt as complex and rich as ever.

Plus, Slade broke down the final step Oliver needs to take in order to metaphorically escape the island: to forgive himself for his father’s death. For Chase and for Oliver, everything came back to their fathers.

And the climax of the episode occurred when Oliver confronted Chase on a boat about William’s location, only to realize Chase set up the ultimate choice: his friends — who were still on Lian Yu, which wass rigged to explode if Chase died — or his son.

Oliver professed his confidence in his friends as he rescued his son. But Chase proved himself perhaps the ultimate villain, as he killed himself to take Oliver’s friends from him. Even to the end, Chase was ten steps ahead. The season closed with the fate of Team Arrow unknown.

What did you think of the ‘Supergirl,’ ‘The Flash’ and ‘Arrow’ season finales?