The unseeded Edmund, ranked 49, won 6-4, 3-6, 6-3, 6-4 in 2hr 49min on Rod Laver Arena and will face former US Open champion Marin Cilic for a place in Sunday's final.
By winning Edmund also became only the sixth British man to make the last four at a Grand Slam. It marked his first victory against a top-five ranked player.
With another British Grand Slam semi-finalist Tim Henman watching in the stands, Edmund kept Dimitrov under pressure with his powerful forehand and serve.
"I am loving it right now, just the way I'm playing. I'm 23 years old, my first Grand Slam semi-final. First time I played on one of the biggest courts in the world," Edmund said.
"To beat a quality of player like Grigor. They're great feelings. You don't obviously play in the semi-finals of a Grand Slam every day, or a quarter like today.
"So I'm just trying to enjoy it as much as possible. There's no reason why my tennis wasn't good enough to win. It's obviously about going out there and doing it."
Edmund is the only British man in this year's field after five-time finalist Andy Murray's injury withdrawal before the tournament.
"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."
The only other British men to get so far at a Slam were Henman, Murray, John Lloyd, Roger Taylor and Greg Rusedski. Murray, Lloyd and Taylor did it in Australia.
- Flat spot -
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.
The Bulgarian 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.
But Dimitrov hit a flat spot and gave up a break with a double fault in the eighth game and Edmund seized the third set with a strong serve.
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.
Dimitrov is yet to go beyond the semi-finals at a Grand Slam.