"We are pleased that we were able to sign a German national player in Niklas Süle and retain him for four years," Dortmund sports director Michael Zorc said in a statement.
Bayern had already confirmed last month that Süle would leave at the end of the season when his contract expires having turned down an extension.
Dortmund, who trail Bayern by nine points in the Bundesliga table, have pulled off a coupe by signing the towering 26-year-old centre back.
Süle has made 159 appearances for Bayern since they signed him from Hoffenheim in 2017 for 20 million euros ($22.5 million).
He is set to be a key player for Germany at the World Cup in Qatar, which kicks off in November.