Pliskova won 6-4, 4-6, 7-5 to set up a final four clash with Japanese fourth seed Naomi Osaka, ending the American great's dream of claiming a record-equalling 24th Grand Slam title at Melbourne Park this year.
The 26-year-old survived four match points in a rollercoaster third set that Williams led 5-1 before collapsing to defeat in two hours 10 minutes.
"I was almost in the locker room, now I'm standing here as the winner. It's a great feeling," an exhausted Pliskova said.
"My mind was in the locker room. I wasn't playing very well in the third set but I thought let's try, this game at 5-2. She got a little bit shaky in the end so I took my chances and I won."
Williams, 37, had blazed through the early stages of the tournament, seeing off world number one Simona Halep in the fourth round.
But against Pliskova she lacked the intensity she had previously displayed and was soon trailing for the first time during her campaign after a slew of uncharacteristic errors.
Pliskova, who entered this year's tournament on a high after winning the Brisbane International warm-up, came out firing and out served Williams to take the first set.
Williams rebounded in the second set before imploding in the third when she had the finish line in sight.
Former world number one Pliskova has made the quarter-finals in her last two appearances at Melbourne Park and made the final at the US Open in 2016.
She has been a regular in the second week of Grand Slams in recent years, reaching the quarters or better six times since late 2016, but is still searching for a breakthrough win.
The Czech said the win over Williams was a huge confidence booster before facing US Open champion Osaka.
"She's dangerous but nobody is more dangerous than Serena," she said.
Highlights Tennis Karolina Pliskova serena williams Australian Open