The 26-year-old returns to Barcelona in a deal worth a reported 60m euros (£51m), external after playing for the Spanish club at youth level before joining Croatia’s Dinamo Zagreb in 2014.
Olmo has signed a six-year contract with Barcelona that has a release clause of 500m euros (£429m).
He was joint top-scorer at Euro 2024 with three goals as he helped Spain win the tournament for a record fourth time.
“Wherever he plays, Olmo stands out for his individual talent and his ability to link up with his team-mates,” Barcelona said in a statement.
“He has a nose for goal as he showed in Euro 2024 and can score from inside and outside the penalty area.”
Olmo won two German Cups at RB Leipzig after joining them in 2020.
“A young club, a young player. We grew up, won our first trophies and made history together,” he said on X.
“Thank you RB Leipzig, you’ll forever be in my heart