Sabitzer joined Bayern Munich from RB Leipzig in the summer of 2021 and won the Bundesliga title and one German Super Cup during his time at the Allianz Arena.
The Austria international spent the second half of last season on loan at Manchester United, where he made 18 appearances, scored three goals and won the Carabao Cup.
Dortmund are looking to kick on from last season when they lost the title to Bayern on the last day of the season on goal difference.
The addition of Sabitzer will provide an extra spark in midfield following the loss of Jude Bellingham to Real Madrid earlier in the summer transfer window.
The 29-year-old has accrued 185 Bundesliga appearances over the years for his former clubs, netting 34 goals and providing 29 assists.
Sabitzer told Dortmund’s website: “I can’t wait to finally join the team and wear the BVB jersey. The discussions with Borussia Dortmund’s managers were excellent and showed me how ambitious the club wants to be in the coming years.
“I would like to do my part to ensure that BVB achieves its goals and that it has every reason to celebrate something special with its fans again as soon as possible.”
Dortmund sporting director Sebastian Kehl added: “Marcel is an experienced player who has been playing at the top international level for years.
“We are convinced that his personality will also become an important pillar of the team and that he will help us to become even more effective in hard-fought games.”