It wasn’t Jon. Nor Daenerys. Instead, Arya got the hero’s moment at the end of the Battle of Winterfell. After thousands fell during the fight in “The Long Night,” Arya managed to kill the Night King — and destroy every single White Walker and wight in the process. She saved Winterfell and all of humankind.
Arya realizes her fate in a conversation with Melisandre, who returned to Winterfell to help the living after being exiled from the North last season. (She tells Ser Davos that there’s no need to execute her as she’ll be “dead before the dawn.”) After escaping several wights in the castle with the Hound at her side, Arya speaks to Melisandre for the first time since the Red Priestess took Gendry away. Arya confirms that Melisandre does indeed see the future — she saw that she and Arya would meet again, and that Arya would kill a great many people. Melisandre tells Arya that the Stark girl has closed brown eyes, green eyes, and then pauses before saying, “blue eyes.” With that hint, Arya divines she is meant to kill the Night King and sprints away.
In the post-episode breakdown, showrunners David Benioff and D.B. Weiss said that they have known for three years that Arya would be the one to kill the Night King. “We knew it had to be Valyrian steel in the exact spot where the Children of the Forest put the dragonglass blade to create the Night King. And he’s uncreated by Valyrian steel.”
That Valyrian steel dagger has a long history on Game of Thrones. An assassin — or catspaw — used the dagger to try to kill Bran Stark in the first season. Littlefinger, who took the dagger from Catelyn Stark, gave the dagger back to Bran. Bran, in turn, gave it to Arya — so that she could use it at this moment to save Bran. The weapon that was meant to kill Bran ended up saving his life. As the Three-Eyed Raven, Bran knew that this would come to pass. That’s seemingly why he offered himself up as bait during battle planning, and also why he was staring behind the Night King’s shoulder after Theon was murdered.
Some fans thought that Arya gave the dagger to Sansa at the beginning of the episode. After the wights proved unstoppable, Arya told Sansa to go down to the crypts and to take the dagger to protect herself. We only see the hilt and can assume it’s the Valyrian steel dagger. But Sansa flashes the dagger to Tyrion in the crypts as they hide from the Wights and we see that it is dragonglass.
Upon reflection, it’s strange that Sansa or Brienne didn’t nominate Arya for a stealth mission to kill the Night King in the first place. In contrast to Jon and Daenerys’ brute force with steel or fire, Arya moves stealthily and surprises her enemies — and the audience too.