The 81st-ranked South African saved three of the four break points he faced for his seventh win in as many days, making him the first qualifier to reach the hard-court tournament’s final. He had already defeated Dominic Thiem for the first top five win of his career.
Going for his first title, Harris will need to overcome Aslan Karatsev in the final on Saturday.
Karatsev upset top-seeded Russian compatriot Andrey Rublev 6-2, 4-6, 6-4 to advance to his first final.
It was Karatsev’s fourth consecutive win over a seeded player at the tournament. Karatsev soared up the rankings after reaching the Australian Open semifinals on his Grand Slam main draw debut last month. Since the start of February his only losses have come against Novak Djokovic and Thiem.