Odegaard, 22, will provide Mikel Arteta’s team with creativity, following the departure of Mesut Ozil.
The Norwegian had asked to leave the Santiago Bernabeu in January due to a lack of first-team minutes so far this season.
He has played only seven times in La Liga and is yet to complete 90 minutes for Madrid since returning from last season’s loan spell at Real Sociedad.
Odegaard revealed the role Arteta played in his decision, telling the club’s official website: “I spoke to him before coming here, of course. That was very important for me and he seems like a top manager and I liked his ideas, the way he sees football and also the way he is.
“He gave me a great feeling and that was important for me to come here. He was crucial.
“I think every time you go to a new place, you want to make sure that it feels good and that there is a plan. But I think everything here just seems good.
“I like the club and I always liked the way that the club wants to play. Everything about the club and now how the manager wants to play, I think it’s a club that really suits me well. So I think it’s a good match.”