Emily Bett Rickards, Stephen Amell Emily Bett Rickards, Stephen Amell

If Arrow's Oliver Queen (Stephen Amell) started off the series as a vigilante, he's now evolved into the full-fledged hero he was destined to become. Oliver completed his transition during Wednesday's season finale, and surprisingly, it was thanks to his nemesis Slade Wilson (Manu Bennett).

With the battle raging in Starling City, Oliver, Nyssa (Katrina Law), Sara (Caity Lotz), Roy (Colton Haynes) and the League of Assassins team up to take out Slade's Mirakuru army. Nyssa quickly kills Isabel (Summer Glau), but Slade doesn't make it very easy for them. After Slade kidnaps Laurel (Katie Cassidy), Olivier tells Felicity (Emily Bett Rickards) that he needs to keep her hidden because Deathstroke threatened to kill the woman he loves — but it isn't Laurel, it's Felicity.

Add new fall shows to your Watchlist!

Of course, it isn't long before Slade finds Felicity, taking her hostage while Oliver & Co. are busy destroying the Mirakuru army. But it's all a ruse! Oliver knew that Slade had been spying on him, so he only made Slade believe that Felicity was his true love so that she could get close enough to administer the cure. What commences is an epic showdown between the pair in both the past and the present, with Oliver coming out on top. In the past, when Slade threatens to destroy Oliver's life, Oliver drives an arrow through his eye — though we know he didn't ultimately die. In the present, Oliver declines to kill Slade and puts him in an A.R.G.U.S. prison on the island, where he thanks Slade for helping him to become a hero.

With Slade in custody, Amanda Waller (Cynthia Addai-Robinson) calls off the airstrike on Starling City, though it was fun to see Diggle (David Ramsey) and Lyla (Audrey Marie Anderson) team up with Deadshot (Michael Rowe) to threaten her. And that's good news for Diggle, too, because Lyla is pregnant with his child.

In the end, Sara willingly leaves Starling City with Nyssa, the price she had to pay for the League's help. She even hands over her leather jacket to Laurel, possibly passing the Canary torch? But it isn't a completely happy ending for the Lance family, as Quentin (Paul Blackthorne) didn't realize he sustained internal bleeding during the army attack and collapses.

Check out the new fall shows!

Also, Thea (Willa Holland) did, in fact, shoot her father Malcolm (John Barrowman), but he was wearing a bulletproof vest, so he survives and even applauds her conviction to pull the trigger — something Tommy (Colin Donnell) couldn't do. But Thea ditches him and returns to Roy, and the two decide to leave Starling City together. When Roy is called away to help in the battle, she finds his arrows in his apartment. Deciding that she can no longer trust him, Thea leaves with Malcolm, while Roy seemingly makes the decision to become a full-time hero.

But there's still one last surprise in store. After Oliver's showdown with Slade in the past, he wakes up in Hong Kong, where he meets Amanda Waller for the very first time. That's right, Oliver of the past is no longer on the island!

What did you think of the Arrow finale? Catch up on the whole season here.

And as a special bonus, here's the first promo for the Arrow spin-off The Flash:

(Full disclosure: TVGuide.com is owned by CBS, one of The CW's parent companies.)