British No 2 Dan Evans reached the first ATP tour semi-final of his career with a three-set victory over third seed Phillip Kohlschreiber in Zagreb.