The Italian fifth seed was pushed all the way by her Russian opponent in a match that ran for two hours and 34 minutes on Philippe Chatrier Court at Roland Garros.
She barely laid a glove on the heavy-hitting teenager Pavlyuchenkova, 19, in the first set as she lost it 6-1 without breaking her opponent's serve.
Pavlyuchenkova looked poised to become the first teenager to reach the last four at the tournament since Ana Ivanovic in 2007, but the defending champion steadied the ship by breaking for the first time in the match to close to 4-3 before a series of timely winners helped her close out the second set 7-5.
Schiavone struggled to cope with windy conditions as Moscow-based Pavlyuchenkova wore long sleeves and hit long balls to unsettle the Italian fifth seed, who next faces Russian former champion Svetlana Kuznetsova or local favourite Marion Bartoli.
It worked perfectly for Pavlyuchenkova, who knocked out world number three Vera Zvonareva in the previous round, and she raced into a 6-1 4-2 lead.
But with her back to the wall at 2-4 0-40 down in the second set, Schiavone bounced back, grunting as her game gradually fell into place and her opponent's started to unravel as she won six games in a row.
Pavlyuchenkova broke back for 5-5, only for Schiavone to steal her serve again and end the contest with a backhand winner.
"I did not play good, I hope I will play better in the semi-final because this crowd deserve to see good tennis," said Schiavone.