Sky in Germany report the deal with Real which will earn him around £ 10.5million a year after his contract with Bayern expires.
Real Madrid confirmed the signing on Friday night and said Alaba will be revealed after Euro 2020.
Alaba had been at Bayern since 2008 but turned down several offers to extend his contract, including a € 15million-a-year deal, but talks ceased in November.
He enjoyed 13 prolific years in Bavaria, winning 10 Bundesliga titles, two Champions Leagues and six German Cups.
The Austria international had also sparked interest from Premier League teams, including Liverpool and Manchester City.
City tried to lure Alaba to Manchester last summer and had hoped to include him as part of the deal that saw Leroy Sane move to Munich.
Inter Milan, Paris Saint-Germain and Juventus are also reportedly keen to sign the 28-year-old.
Tale in the frame for real
Antonio Conte is seen as Zinedine Zidane’s successor at Real Madrid after missing first choice Max Allegri, according to Sky in Italy.
After Zinedine Zidane left the Bernabeu for the second time this week, the Spanish giants were hoping to name Allegri as a long-term target, but he is set for a sensational return to Juventus to replace Andrea Pirlo, who was sacked on Friday.
They have now turned to Conte, who is a free agent after parting ways with Inter Milan on Wednesday, despite leading them to the Serie A title, due to the club’s need to make cuts important financials.
Conte is a prolific champion with Juventus himself, as well as with Chelsea and now Inter.