Diaz, a 19-year-old winger, has agreed to a contract for six and a half years with Real and will undergo a medical on Monday, before being officially unveiled at the Santiago Bernabeu.
A Real Madrid statement read: “Real Madrid and Manchester City have agreed to the transfer of the player Brahim Diaz, who will be linked to the club for the remainder of the season and the next six, until June 30, 2025.”
Diaz’s deal at Manchester City was set to expire in June. Madrid have reportedly agreed to pay 17 million euros up front, with a further seven million euros due depending on performance.
He moved to the Premier League from Malaga in 2013 but has struggled to establish himself in City’s first team.
He will join a talented group of young Spanish players at Madrid, which already includes Marco Asensio, Dani Ceballos, Marcos Llorente, Alvaro Odriozola and Sergio Reguilon.
Real sit fifth in La Liga after they were beaten 2-0 by Real Sociedad on Sunday.