Nick Kyrgios will face Ryan Harrison in the Brisbane International final after the home favourite halted defending champion Grigor Dimitrov's seven-match winning run on Saturday.
Dimitrov ended last season by claiming the ATP Finals title and extended his run of victories in Brisbane before Kyrgios beat the top seed 3-6 6-1 6-4.
Fourth seed Kyrgios did not appear to be hampered by a sore knee, coming from a set down for the third time this week to knock the world number three out - his first victory over the Bulgarian in three attempts.
Kyrgios served 19 aces and mixed up his game impressively, showing character to battle back again after the in-form Dimitrov ominously claimed the first set courtesy of a solitary break.
Dimitrov was broken twice in the second set and Kyrgios lost just five points behind his impressive serve in the decider, earning a break to lead 4-3 and reaching the final when his opponent drilled a return beyond the baseline.
Kyrgios said: "He's definitely one of the best players in the world at the moment, he had a great end to last year and played remarkably.
"He's beaten me two times, so I knew I had to do something a little bit differently today. I couldn't give him too much rhythm and my serve came through again. I'm looking forward to another final tomorrow and hopefully getting it done."
There will be no all-Australian final after Harrison ended Alex de Minaur's dream run.
De Minaur, 208th in the rankings, beat Milos Raonic en route to the last four, but American Harrison overcame the teenage wildcard 4-6 7-6 (7-5) 6-4 to reach his third ATP World Tour showdown.