Sabalenka, who suffered her first loss to Zheng in seven career meetings in the Rome quarter-finals last month, went behind early in the opening set at a half-full Court Philippe Chatrier.
China's Zheng, bidding to emulate compatriot Li Na's 2011 triumph at Roland Garros, crushed a powerful forehand winner to break for a 2-1 lead but Sabalenka moved through the gears to level five games later.
The 27-year-old top seed was denied on set point while up 6-5, but shrugged off that disappointment to glide through the tiebreak when errors crept into eighth seed Zheng's game.
The two players swapped breaks in a high octane second set.
A huge forehand winner put Sabalenka 5-3 up and the triple grand slam champion never looked back as she set up a last-four meeting with either 13th seed Elina Svitolina or four-time champion Iga Swiatek.
"It was a true battle and I had no idea how I could break her back and get back into the first set. I didn't start well and I'm glad I found my rhythm and won," said Sabalenka, who took a step closer to her maiden French Open title.
"I think we're all here for one reason. Everyone wants that beautiful trophy. I'm glad I have another opportunity, another semi-final to do better than last time.
"I really hope that by the end of the claycourt season I'm really proud of myself."
Sabalenka will now face four-time champion Swiatek, who won her 26th successive match at Roland Garros when she defeated Elina Svitolina 6-1 7-5. The consecutive wins record on the Parisian red clay is Chris Evert's 29.
Swiatek has won five of the six matches she's played on clay against Sabalenka, including a thrilling three-setter in Spain last year.
"The Madrid final against her is one of the best and most exciting finals that I have played," said Swiatek, who has not won a title or reached a final since her victory at Roland Garros last year.
With AP