The 24-year-old midfielder moves to the European champions on the back of an outstanding World Cup.
He scored two goals in as many minutes in the 7-1 semi-final rout of Brazil, en route to overcoming Argentina 1-0 in Sunday's final.
Kroos, 24, was instrumental in Germany's World Cup triumph and leaves the German Bundesliga champions with a year still left on his contract.
He signed a six-year deal with the Spanish club. The midfielder will be presented by the club at 5pm today at the Bernabeu, Real Madrid said in a statement.
"We thank Toni Kroos for his time in Munich," Karl-Heinz Rummenigge, chairman of Bayern Munich said. "We have achieved great success with him here. We wish him and his family all the best in Madrid and Real."
Real hailed their latest catch as "one of the most important players of the moment".
In the statement confirming his arrival the club described him as "a playmaker capable of finding the best option in any situation, with a vision of the game enabling him to help his teammates, as well as an impressive kick."
Kroos, whose contract with Bayern expired next season, sided with Real over alternative touted moves to the likes of Manchester United or Chelsea.
He arrives at the Santiago Bernabeu with 11 trophies already on his cv, Sunday's World Cup the jewel in a collection including the 2013 Champions League, Bundesliga titles and the Club World Cup.
He joined Bayern as a teenager in 2007, making his first team appearance at the age of 17. He became a regular after an 18-month loan spell at Bundesliga rivals Bayern Leverkusen.
This is the second high profile World Cup player to move to La Liga this month, following Luis Suarez's reported EUR95 million ($128 million) transfer from Manchester City to Real's arch rivals Barcelona.
The path from the World Cup to Spain could also see Monaco's Colombia hotshot James Rodriguez join Kroos at Real.
The World Cup's top scorer with six goals told Spanish sports daily Marca on Monday: "I'd jump at the chance of going to Real Madrid."Bayern said the clubs had agreed to not disclose the transfer fee, but according to media reports the midfielder went for €30 million.