Willock spent the second half of 2020-2021 on loan at St James' Park and scored eight goals in 14 Premier League appearances for Steve Bruce's side.
The 21-year-old had netted only once in 40 Premier League games for the Gunners before his move to Newcastle, where he scored 16 minutes into his debut at home to Southampton.
Willock had an outstanding end to the campaign with goals in successive appearances against Tottenham Hotspur, West Ham United, Liverpool, Leicester City, Manchester City and Sheffield United to become the youngest player to net in six consecutive Premier League games.
In scoring on the final day of the season against Fulham, he matched Alan Shearer (in 1996) as the only Newcastle players to score in seven matches in a row in the competition – a record streak Willock could own outright with a strike on his second Magpies bow.
Bruce made no secret of his desire to keep Willock on a permanent basis but has had to bide his time as the former England youth international has featured sparingly for Arsenal in pre-season.
Willock becomes Newcastle's first signing of the transfer window, penning a "long-term" contract, which Bruce revealed to span six years. He did not join in time to face West Ham on Monday (AEST).