Schulz moves to the Westfalenstadion for an undisclosed fee, which German outlet Kicker report is in the region of €30m.
The 26-year-old versatile full-back has signed a contract until 2024.
“Borussia Dortmund is a top club who play a style of football that suits me, and I think I can help the team with my way of playing and we can achieve great things together,” Schulz told the club’s official website.
Born in Berlin, the former Hertha BSC and Borussia Mönchengladbach star is one of the Bundesliga’s fastest players and recorded a top speed of almost 35 km/h this season.
“Nico Schulz is a defensive player who has made another leap in performance over the past few years and, like the German national football team, we will benefit greatly from his physique, his pace and his extreme dynamism,” added BVB sporting director Michael Zorc.
“A player like him with his fighting spirit is doing well because of his hunger for success.”