“Maybe Bryce was trying to break the cycle within himself — and Jessica found him before he had the chance,” Ani (Grace Saif) says at the close of 13 Reasons Why season 3 episode “If You’re Breathing, You’re a Liar.” At the time, the sentence feels like pure conjecture from what we eventually realize is Ani’s sheriff's interview with deputy Standall (Mark Pellegrino). It’s a conversation filled with lies and half truths, all crafted to help Ani explain how Bryce Walker (Justin Prentice) died... without implicating her new Liberty High friends in the disgraced teen’s murder.
However, 2019 finale “Let the Dead Bury the Dead” reveals Ani may have been on to something so early in the season. Because, Bryce Walker’s murderer is Alex Standall (Miles Heizer) — and Jessica Davis (Alisha Boe) is the one who unwittingly brings Bryce’s angel of death to the Navy Pier dock on homecoming night.
It’s a shocking twist that hinges on the idea that no matter how much 13 Reasons Why season 3 questioned the rehabilitation of Bryce Walker, he was never really going to change.
We begin to understand how and why Bryce ended up at the scene of his eventual murder in “There Are a Few Things I Haven’t Told You,” the eleventh episode of season 3. It’s then that Bryce approaches Jessica before the homecoming game to tell her that he wants to give her “something” and needs to explain the object in full (it’s the bloody tape Jessica is hiding in the 2019 premiere). Jessica is rightly suspicious of talking to Bryce, her rapist and a serial assaulter — particularly in public before her protest against sexual violence. But Jessica is also afraid to meet Bryce in private.
Still, Bryce says he'll be at the pier waiting for Jessica that evening, should she want to hear what he has to say.
But it’s not Jessica who first finds Bryce at the docks. Instead, it’s Zach Dempsey (Ross Butler), as we learn in penultimate episode “And Then the Hurricane Hit.” Zach has his own bone to pick with Bryce due to the aftermath of Chloe’s (Anne Winters) early season 3 abortion. Chloe tells ex-boyfriend Bryce about the terminated pregnancy — and that the resulting baby would have been his — before the all-important homecoming game. Although Bryce first shows Chloe kindness over the reveal, that changes the second Bryce learns Zach helped Chloe through the painful journey. Despite all of Bryce’s talk about forgiveness and evolution over the season, he starts berating Zach the second they step on the field together.
Then, during the brawl that breaks out following Jessica's sexual assault protest, Bryce takes his chance to exact violent revenge on Zach. He puts on his helmet and dives directly into Zach’s knee, shattering it, and Zach's college athletics future. So, Zach continues the vicious circle after going to the hospital. He follows Bryce from the Hillcrest football team's drop-off point to the docks. Zach approaches Bryce and manages to beat him nearly to death (even though it’s Zach with the ruined knee), but walks away before the job is done.
This is another moment where Bryce proves he hasn’t actually transformed the monstrous way he views situations. First, he says Zach “took away his future” by helping Chloe break up with him. It’s a statement that helps Bryce ignore the reality that he sexually coerced his girlfriend repeatedly over season 2 and raped her while his friends took photos. That is why Chloe dumped Bryce. Then Bryce yells, “Did you fuck her, Zach? Chloe? Did you fuck her? How many times?” No matter how enlightened Bryce tries to pretend he is, he really only sees women as sexual pawns.
Zach breaks Bryce’s leg in response.
Minutes later, Jessica and Alex find this broken and bloody Bryce splayed out on the pier. The approaching pair is Jessica and Alex — rather than Jessica and boyfriend Justin Foley (Brandon Flynn) — because Justin was secretly at the waterfront buying drugs at this time. Jessica asks what Bryce wants to give her, and it’s the blood splattered confession/apology tape. “I’m trying to be better, but this fucking world won’t let me,” Bryce claims after Jess takes the tape. The second Alex goes to help Bryce up — saving him from freezing to death in the November cold — Bryce shows it’s not the world that’s keeping him from getting better. It's Bryce.
“Fucking Zach! I’m gonna fuck up his other knee and wreck his life,” Bryce yells in a fury of pain before alleging Jessica “set him up.” It’s clear that if Bryce were to walk off of that pier, he would dedicate his life to ruining Zach, Jessica, and maybe even Alex himself. “You’ve hurt everyone I ever loved,” Alex says before pushing Bryce into the river to drown. We're a long way from those two hanging out with sex workers, as they did over the summer. Alex and Jessica watch Bryce bob up and down in the water until he finally drops down into its murky depths forever.
And that is how Bryce Walked died. Ani may spend the finale telling sheriff Standall it was the murdered Monty de la Cruz (Timothy Granaderos) who threw Bryce to his death, but we’ll always know the truth. Welcome to Team Tape, I guess.