Cilic, the 2010 finalist, dropped just five points from his own serve as the 23-year-old Croat defeated Haas 6-3, 6-4.
The 34-year-old Haas was once ranked as high as No. 2 but has dropped to No. 134 because of injuries. He was playing in his first ATP semifinal since August 2009 after receiving a wild card into the clay-court tournament.
The fourth-seeded Kohlschreiber defeated second-seeded Feliciano Lopez of Spain 6-2, 6-7 (4), 6-4.
The 28-year-old German is hoping to lift his first trophy on Sunday since winning the Gerry Weber Open in Halle, Germany last year.
The Munich tournament is one of the warm-up events for the French Open.