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.
The 56th-ranked Dodig defeated Russian two-time champion Nikolay Davydenko in the first round, second-seeded countryman Marin Cilic in the next and fifth-seeded Alexandr Dolgopolov on Friday.
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."