Kevin (James McAvoy) is a man with dissociative identity disorder, and he has 23 identities, with the 24th being The Beast, a monstrous persona. Kevin is controlled by The Horde, which are the major identities he acts as throughout the film, being Barry (a sketch artist), Dennis (a psycho), Patricia (a British woman), and Hedwig (a 9-year-old boy).
Kevin kidnaps three girls - Casey, Claire, and Marcia - in an attempt to sacrifice them to The Beast. The Beast kills Claire (Haley Lu Richardson) and Marcia (Jessica Sula), along with Kevin's therapist Dr. Fletcher (Betty Buckley), but Casey (Anya Taylor-Joy) is spared because The Beast notices scars on her body from years of abuse at the hands of her uncle. The Beast lets Casey go because he believes she is pure of heart. She is later rescued.
The "twist" is that the film takes place in the same universe as "Unbreakable".