The Japanese world No.9 rallied from 1-4 down in the second set to topple the Bulgarian 7-5 7-5 in a rematch of the 2017 final.
The tournament's second seed will play France's Jeremy Chardy in Saturday's semi-final, after Nick Kyrgios's conqueror prevailed in a third set tie-break against Japan's Yasutaka Uchiyama earlier in the day.
Nishikori missed last year's Australian swing with a wrist injury but has hit the ground running in 2019.
World No.4 in 2015, the lightning-fast talent has bounced out and back in the world's top 20 since but feels the latest upward swing hasn't peaked yet.
"I'm trying to go top five, that's my next goal," he said after the win.
"I was playing great tennis (last year) and I think I'm doing it again now this week.
"I was expecting a very tough match; I thought we both played great tennis and I'm very happy with the way I played today."
Dimitrov glided through his first five service games but was exploited by the No.2 seed when he showed the slightest sign of tightness.
Two baseline errors and a double fault gave Nishikori his first look and, on his third break point, pounced to break and then hold serve to claim a high-quality first set.
The Bulgarian was again troubled on serve to open the second set but he still grabbed the first break to jump ahead 2-0.
Dimitrov then produced a superb backhand winner and big serve to stave off an immediate break back and appeared set to force a decider at 4-1.
Nishikori kept coming though, pouncing on another sloppy moment to erase the advantage in the seventh game.
And, in a repeat of the first set, he made the most of another tight service game at 5-5 to clinch the decisive break and eventually close it out in one hour 41 minutes.
Meanwhile Britain's Kyle Edmund has pulled out of the Sydney Tennis International next week with a knee injury.