The third-seeded Haas defeated Ivan Dodig of Croatia 6-4, 6-3 on Saturday, while Kohlschreiber edged compatriot Daniel Brands 6-7 (4), 6-3, 7-6 (5) to set up the first all-German title match in Munich in 48 years.
The 35-year-old Haas, who reached the 2000 final and hopes to win the title for the first time in his 10th attempt, needed less than 90 minutes to oust an opponent who posted three upsets on his way to the semis.
Kohlschreiber battled from a break down in the final set to beat Brands in 2 hours, 14 minutes. He's going for his third Munich title, also winning in 2007.
"It's great for German tennis," Haas said. "We played really well last year in all the German events and now again we're going to have an all-German final, which I think is great for the fans."