The 23-year-old Australian fired six aces, won four break points and won 77% of points on her first serve in a match that lasted an hour and 25 minutes.
World number two Barty was given a scare in the opening set when Williams flew into a 4-1 lead but the American was undone by her rising unforced error count (28), which gave Barty the opening she needed to get back into the contest.
"I knew my level would have to be very good today to make it a contest," Barty said on court after her win. "Venus was an inspiration to every single girl and boy around the world, she still is.
"What she's been able to do for this sport is incredible. Her career has been phenomenal and it's not over yet," adding that she could "absolutely not" see herself playing at 39 like Williams.
Barty is now two wins away from becoming the first Australian woman to top the tennis rankings in more than 40 years as a title win in Birmingham will allow her to leapfrog world number one Naomi Osaka, who exited in the second round.
"You start to think ahead, it's natural, it happens," Barty said of the potential number one ranking. "It's important for me to come out and focus tomorrow. Whatever happens, happens."
Barty will now face Barbora Strycova who beat Kristyna Pliskova 6-2 6-4.
The other semi-final will be played between Germany's Julia Goerges and Croatia's Petra Martic, who outlasted Jelena Ostapenko 6-7(4) 7-5 6-1 in a marathon encounter.
(Reporting by Rohith Nair in Bengaluru; Editing by Christian Radnedge)