The unseeded Edmund, ranked 49, won 6-4, 3-6, 6-3, 6-4 in 2hr 49min on Rod Laver Arena and will face either 16-time Grand Slam champion Rafael Nadal or Marin Cilic for a place in the final.
With another British Grand Slam semi-finalist Tim Henman watching on in the stands, 23-year-old Edmund troubled Dimitrov with his powerful forehand and serve.
"It's an amazing feeling, very happy with these sort of things, you are so emotionally engaged that you don't really take it in, you don't really enjoy yourself," Edmund said.
Edmund is the only British man in this year's field after five-time finalist Andy Murray's injury withdrawal before the tournament.
More From This Section
"I know what it feels like to be Andy Murray for the last eight years or however long," Edmund said of the expected media attention after his win.
"Yeah, of course, it comes with the territory of playing the sport. The better you do, the more attention you get.
"It's probably the first time I've done well on my own. So it is more attention there, but of course you just take it in your stride, trying to embrace it as much as possible."
Edmund, who upset US Open finalist Kevin Anderson in the opening round, broke Dimitrov's serve five times and hit 46 winners and 48 unforced errors.
Dimitrov began tardily and was broken in the opening game but quickly broke back.
Edmund broke to 5-4 with a forehand and served out for the opening set in 42 minutes.
The Bulgarian saved three break points to take a 3-0 lead in the second set and then served out to level the set scores on his first match point.
Edmund got a break in the fifth game of the fourth set when Dimitrov shanked a forehand well out, but the British hope handed the break back with an errant forehand on break point in the next game.
The errors continued to flow for Dimitrov and he fell behind two break points in the ninth game and was broken when he netted a backhand, leaving Edmund to serve out for the match.