Warning! Major SPOILERS ahead for 13 Reasons Why season 3.
13 Reasons Why has revealed who killed Bryce Walker and explained why they did it - with Alex Standall the person who killed Bryce (Justin Prentice). The third and penultimate season of 13 Reasons Why is now streaming on Netflix, with 13 new episodes for fans to watch, and the mystery of Bryce Walker's death has been the major selling point for the series' return.
As revealed by the 13 Reasons Why season 3 trailer, Bryce Walker had disappeared and been murdered after the homecoming game, and given he was a serial rapist and longtime bully, just about everyone at Liberty High has been considered a suspect. 13 Reasons Why season 3 plays out as a murder mystery, examining the likelihood of a number of different candidates and exploring how they all had their reasons to kill Bryce.
Clay Jensen (Dylan Minnette) is arrested for the murder and later released on bail, while other major candidates who emerge across the season include Jessica Davis (Alisha Boe), Tony Padilla (Christian Navarro), Tyler Down (Devin Druid), and Justin Foley (Brandon Flynn). It looks like we're about to see that it was Zach Dempsey (Ross Butler) who did it, but although he beat Bryce to within an inch of his life, he isn't the one who finished the job. It's revealed in the 13 Reasons Why season 3 finale, "Let The Dead Bury The Dead", that it was actually Alex Standall (Miles Heizer) who killed Bryce Walker, with their motive explained as well.
In a flashback, which takes place after the homecoming game, Alex and Jessica find Bryce at the pier, in desperate need of help. The pair worry over what to do, concerned that helping him or not, either way will lead to Zach going to jail. Bryce gives them a tape with a full confession and apology on it, stating that he wants to be better. Alex attempts to help Bryce up, but that's when he started screaming about revenge on Zach and being angry at Jessica, at which moment Alex realized that Bryce was never going to change, and he'd always be hurting people. Telling him that "You hurt everyone I ever loved," Alex started pushing Bryce off the pier, and after a struggle, pushed him into the water. Alex and Jessica watched as Bryce attempted to swim, and then finally died, meaning Alex Standall killed Bryce Walker in 13 Reasons Why.
However, Alex isn't the one who goes to jail for the murder. 13 Reasons Why newcomer Ani Achola (Grace Saif), in an effort to ensure Clay is exonerated, concocts a story blaming Montgomery de la Cruz (Timothy Granaderos) for the murder, telling it to Deputy Bill Standall (Mark Pellegrino) in the 13 Reasons Why season 3 finale. Although he knows that it was Alex who killed Bryce Walker, he goes along with Ani's story so that his son doesn't go to prison, with evidence able to be found connecting Monty to the murder, and burns the clothes Alex was wearing the night of the incident.
It's revealed that Monty had been killed in prison, having been sentenced for sexually assaulting Tyler, so had no means of defending himself and protesting his innocence, which is why Ani had decided to blame him. With Dep. Standall supporting Ani's story, the police go along with that as the official narrative: Monty is officially named as Bryce Walker's killer, and the murder case is closed. Season 3 does include a tease to set up 13 Reasons Why season 4, with a fisherman discovering the guns Tony and Clay and got rid of for Tyler, but the mystery of who killed Bryce Walker has been solved.