Willock stroomde door vanuit de jeugdopleiding van Arsenal. Hiervoor debuteerde hij op 20 september 2017 in het eerste elftal, tijdens een wedstrijd in de League Cup tegen Doncaster Rovers. Hij viel na 84 minuten in voor Reiss Nelson.[3] Hij speelde op 15 april 2018 zijn eerste duel in de Premier League, uit tegen Newcastle United. Hij begon in de basiself en werd na 68 minuten vervangen door Danny Welbeck.[4] Willock mocht twee seizoenen af en toe meedoen en werd in 2019/20 een vast selectielid. Hij kwam dat jaar 29 speelronden in actie. Hij was in 21 daarvan invaller.
Willock was ook in de eerste helft van 2020/21 voornamelijk reservespeler. Hij vertrok in februari 2021 op huurbasis naar Newcastle United. Hier had coach Steve Bruce wel een basisplaats voor hem. Willock verruilde Arsenal in augustus 2021 definitief voor Newcastle United. Dat betaalde circa €29.400.000,- voor hem.[1] Willock kwam in seizoen 2022/23 in 35 van de 38 speelronden in actie voor Newcastle United. Zijn ploeggenoten en hij plaatsten zich dat jaar via de vierde plaats voor het eerst in twintig jaar voor de Champions League.[5] Hij scoorde onder meer tijdens overwinningen op Chelsea (1–0) en Manchester United (2–0).