It was the Pole's 250th career win.
"It was a very demanding match," Hurkacz said.
"In the second set I played very solidly and aggressively, and that gave me the advantage. I'm glad that everything is slowly heading in the right direction."
It was only the pair's second meeting, with Khachanov having won the first, in Vienna in 2019.
Hurkacz will next play Australia's Alex de Minaur, the fifth seed, who beat Russia's Andrey Rublev 1-6 6-2 6-3.
The Polish player has won one of their four previous meetings.
Hurkacz could reach a second final in as many weeks.
Last week he lost the final in Chengdu to Spain's Alejandro Davidovich Fokina.
The China Open is held each autumn in Beijing and runs until 11 October this year.
(ał)
Source: PAP