Double Olympic medallist Sindhu, seeded sixth in the tournament, beat lower ranked Zhang 21-16, 13-21, 22-20 in a quarterfinal match that lasted one hour and 14 minutes.
World number 13 Sindhu avenged her round-of-32 loss to Zhang, ranked 18th, in the All England Open earlier this year. She had also beaten her Chinese opponent in the same tournament last year.
Sindhu faces seventh seed and world number nine Gregoria Mariska Tunjung of Indonesia in the semifinals on Saturday. Tunjung upset second seed Yi Zhi Wang of China in the quarterfinals 21-18, 22-20.
Tunjung has been in fine form recently and Sindhu had lost to her in the Madrid Spain Masters final in straight games in April.
Sindhu will, however, go into the semifinals with a 7-1 head-to-head advantage over Tunjung.
In the men’s singles, however, Kidambi Srikanth lost to Indonesian qualifier Christian Adinata 21-16, 16-21, 11-21 in 57 minutes in the quarterfinals to bow out of the tournament.
HS Prannoy will be up against Japan’s Kenta Nishimoto in another men’s singles quarterfinals later in the day.