Sources told ESPN that the clubs had agreed a €25 million fee. The deal will officially be for two years with an option for a third.
This is the third time James has linked up with coach Carlo Ancelotti, having worked together at Madrid during the 2014-15 season and Bayern Munich in the 2017-18 season.
A new stage for a new challenge in my career. Happy, eager to start and full of ambition, dedication and commitment.— James Rodríguez (@jamesdrodriguez) September 7, 2020
Una nueva etapa y un nuevo desafío en mi carrera. Feliz, con muchas ganas de empezar, lleno de ilusión y compromiso.@Everton 💙 pic.twitter.com/JmPYoTP4u8
"I am really, really happy to be at this great club, a club with so much history, and here with a manager who knows me really well," James told the Everton's website.
"I'm looking forward to achieving great things here -- and winning things, which is what everyone's aim is. I've come here to try to improve, to get better. I've also come here to help the team to win, to play good football -- entertaining football."
Ancelotti's presence at Goodison Park is understood to have been critical in getting a deal done.
"James... is a fantastic player with a lot of quality and a lot of ability to make assists for the strikers," Ancelotti said.
"He was really excited to sign and I didn't spend time to convince him -- he was already convinced."
Rodriguez's signing follows the the arrival of Brazilian midfielder Allan from Napoli last week. The club made another notable addition on Tuesday when it signed midfielder Abdoulaye Doucoure from Championship side Watford on a three-year deal.
Financial details of the Doucoure deal were not disclosed but British media reported that Everton paid around £20m for the 27-year-old who had three years left on his contract with Watford, who were relegated from the Premier League last season.
Everton finished 12th last term and begin their new Premier League campaign with a trip to Tottenham Hotspur on Sunday.
James, 29, was desperate to leave the Bernabeu this summer to restart his career after a disappointing final season in La Liga.
James had been given permission by Real to skip preseason training last week as the move was being finalised.
The playmaker signed for Madrid from AS Monaco for €80m in 2014 after excelling at the World Cup.