The Canaries have confirmed that the 22-year-old striker – who scored nine goals in his loan spell at Crystal Palace – has penned a three-year deal after passing a medical.
A statement on the newly promoted club's website reads: "City are delighted to confirm that Paul Lambert is poised to make his first transfer swoop of the summer by signing Everton's James Vaughan for an undisclosed fee, subject to the completion of the relevant paperwork.
"Vaughan, 22, joins the Canaries on a three-year deal and is set to become the first player to arrive at Carrow Road since City confirmed their return to the Premier League earlier this month."
Vaughan said: "I'm really looking forward to it. I'm really happy to get it done so early in the summer. I'm already looking forward to getting back into training.
"That's what I wanted all along, to get it done and make sure I got a full pre-season. I can look forward to the season ahead now.
"I was very impressed with Norwich last season and obviously getting promoted two seasons in a row isn't easy and a lot of credit has to go to the team for doing that.
"I went out to Palace last year to play some games and do the best that I could for Palace. I really enjoyed my time there.
"Of course it was hard to leave Everton, I've been there since I was six and have always been there but now it was time for me to move on and try and get some games elsewhere and I'm pleased that I've signed for Norwich.
"The club is going in the right direction and hopefully I can join and keep that going in the Premier League."
Vaughan broke into the first team ranks at Everton during the 2004-05 season but, after a string of long-term injuries, failed to cement a place in the starting XI.
The striker has also had loan spells with Derby County and Leicester City.