The Norway midfielder, 22, returns to the Gunners on a five-year deal having spent the second half of the 2020/21 season on loan at the Emirates Stadium.
He made 20 appearances in all competitions scoring two goals, including a memorable one in the North London derby win over Tottenham Hotspur on March 14.
Odegaard becomes the Gunners’ fourth summer signing after the arrivals Ben White, Nuno Tavares and Albert Sambi Lokonga.
It brings to an end Odegaard's six-year stint on Madrid's books, one that was punctuated by a succession of loan spells away from the Bernabeu.
Odegaard joined the Spanish giants as a 15-year-old prodigy in January 2015 from Stromsgodset in his homeland and later spent two seasons on loan at Heerenveen, before temporary stints with Vitesse Arnhem, Real Sociedad and Arsenal.
He is both Madrid and the Norway national team's youngest ever player but would go on to make only 11 appearances for Real's first team. He has 30 caps for Norway.
Odegaard will be given the No 8 shirt - one worn by his new manager Mikel Arteta during his Arsenal playing days.
He will not be available for the Gunners’ Premier League clash with Chelsea on Sunday as Mikel Arteta’s side look to bounce back from the opening day defeat to Brentford.
Romelu Lukaku trains with Chelsea ahead of Arsenal match