Williams will play either former world number one Victoria Azarenka or 16th seed Belgian Elise Mertens on Thursday for a place in Saturday’s final.
Williams blamed her early struggles on tiredness.
“In the beginning I was a little fatigued for whatever reason so obviously I can’t do that if I want to keep winning.
It has been more than three years since Williams won her 23rd Grand Slam title at the 2017 Australian Open — when she was already pregnant with daughter Olympia.
“Whenever you can birth a baby honestly you can do anything and I think we saw that with Tsvetana today. She played unbelievable,” said Williams.
Williams said she was in awe of Pironkova’s run to the last eight.
Williams smashed 20 aces, taking her tally for the tournament to 64 so far.