The 21-year-old handed in a transfer request to force the move to the Magpies, who are in the hunt for Champions League football next season.
Gordon is Newcastle's first signing of the January transfer window.
He was the subject of a failed bid from Chelsea last summer as Everton refused to sell even for £60m.
Gordon has scored three goals in 16 Premier League appearances this season.
A statement from the Toffees confirming his exit read: "Anthony Gordon has joined Newcastle United for an undisclosed fee.
"The 21-year-old forward leaves Everton after having submitted a formal transfer request.
"Gordon joined the Club's Academy at the age of 11 and made his senior debut as a 16-year-old in a Europa League tie in December 2017. He went on to make 78 First-Team appearances, scoring seven goals."
Newcastle have not disclosed the exact length of Gordon's contract, only describing it as 'long term'.
"Since I heard of the interest, I was always convinced Newcastle were for me. People haven't seen what I'm capable of yet," Gordon told NUFC TV.
"I think the fan base and the city really suits me as a person, the way the team are playing under the gaffer really suits me, and the club just look like they're heading in the right direction.
"I feel like it's a really big step. I think under the gaffer, and the way the club's going, I can really excel here."
Newcastle head coach Eddie Howe added: "I'm delighted to sign Anthony - he's a top, top talent.
"I'm really excited to work with him, to develop him, and I'm looking forward to seeing what he can do in a Newcastle shirt."
Gordon could make his debut against West Ham United next weekend.