Klinsmann, who resides in the United States, turned down the U.S. national team job 13 months ago and has not coached since the World Cup.
He played for Bayern in 1995-97 but often clashed with Bayern's outspoken management during his tenure as national team coach.
The decision to hire the 43-year-old Klinsmann follows the decision of Bayern's current coach, Ottmar Hitzfeld, to step down at the end of the season.
Conservative Bayern spent almost $100 million on players last summer, including French playmaker Franck Ribery and Italian striker Luca Toni, but after a strong start Bayern slipped and finished the first half of the season tied for first place with Werder Bremen.
Last season Bayern finished fourth in the Bundesliga and missed out on the lucrative Champions League.