The Norway international, who spent the second half of last season on loan at Emirates Stadium, is thought to have agreed a four-year deal with the Premier League side.
Odegaard returned to parent club Madrid but was not part of their matchday squad for last week's 4-1 win over Deportivo Alaves on the opening weekend of the new LaLiga season.
Having been restricted to just eight league appearances for Los Blancos since joining in 2015, the majority of that time spent out on loan, the attacking midfielder has now departed the Spanish capital on a permanent basis.
Arsenal confirmed the news on their official website on Friday and the 22-year-old is now in contention for the Gunners' home league clash with Chelsea on Sunday.
Odegaard made 20 appearances in all competitions for Arsenal after joining on loan at the end of the January transfer window, 14 of those outings coming in the Premier League.
He scored one goal and provided two assists, while his 20 chances created was the most of any Arsenal player during his spell on loan, three more than Emile Smith Rowe.
The Stromsgodset product also ranked highly for dribbles completed, his tally of 13 in the league bettered only by Nicolas Pepe (14), Thomas Partey (15) and Bukayo Saka (18).
Odegaard becomes Arsenal's third signing of the window following the arrivals of Nuno Tavares, Albert Sambi Lokonga and Ben White.
Mikel Arteta's side were beaten 2-0 by newly promoted Brentford in their first game of the campaign.
The 22 shots they registered without scoring against the Bees was their most without finding the net in a league match since December 2017 against West Ham (also 22).