Volland, who had one year left on his deal in the French Riviera, arrives in the German capital for a reported fee of 5.5 million euros ($6 million) including bonuses.
The 31-year-old forward spent three years in Ligue 1, having joined from Bayer Leverkusen in 2020.
Volland scored 39 goals and laid on 24 assists in 115 games in all competitions for Monaco. The striker played 16 times for Germany, scoring once.
"In our conversations, we sensed how much Kevin wanted to return to Germany and the Bundesliga" said Union sporting director Oliver Ruhnert.
Union Berlin, who won promotion to the German top flight in 2019 for the first time, are set to embark on their maiden Champions League campaign this season and have set about strengthening their squad.