The 25-year-old, who only arrived at Freiburg last summer from St Pauli, has signed a four-year contract with the Foals and will join them in July.
"We are pleased that Max Kruse has chosen us," Gladbach's director of sport Max Eberl said on his club's website.
"He is a quick, technically strong and versatile player who will strengthen our attack."
Kruse passed a medical in Monchengladbach before returning to Freiburg, with whom he will complete the current season before switching allegiances.
He has scored nine goals this term, having previously appeared in the top flight for Werder Bremen as well as St Pauli, scoring two further goals in a total of 62 Bundesliga appearances.
He has also played 63 times in the second division, scoring 20 goals, and was capped by Germany Under-21s once in 2008.