Real gave no further details in a brief statement on their website. But Spanish newspapers have said he would arrive on a free transfer because his contract at the German giants is due to expire.
The German-born Altintop, 28, joined Bayern from Schalke 04 in 2007 and signed a one-year extension to his contract last year.
But the player, currently sidelined with a back problem, has only played 63 games for Bayern in an injury-plagued four-year spell.
His transfer follows that of his 22-year-old international teammate Nuri Sahin, who completed a 10-million-euro move to Real from German champions Borussia Dortmund earlier this month.
Real Madrid coach Jose Mourinho hopes the versatile and powerful Altintop will give some strength to the midfield as the club look to rebuild for next season, Spanish media said.
Real are set to finish second to Barcelona in the Spanish league this season and also crashed out to the Catalan club in the Champions League, but beat their arch-rivals in the final of the King's Cup.
Real sign Bayern's Altintop
Advertisement