The former world No. 4 had to come through qualifying after a lengthy recovery from elbow surgery saw her ranking plummet.
Keys raced to a 5-0 lead in the third but Zheng had a last stand in her. She saved match point at 5-1 and just kept rolling, Keys' increasing frustration showing as she banged her head with her racquet after one lost point.
"I just told myself keep holding every single point, never give up, stay there. And somehow little by little it just happened," Zheng said.
Zheng, currently ranked 121st in the world, will face six-time Grand Slam champion Iga Swiatek for a place in the quarterfinals.
Swiatek saved three set points in the second set, dominating both tiebreakers in her tight 7-6 (7/3), 7-6 (7/3) win over Czech Maria Bouzkova.
Belgium's Blockx shocked Cobolli 6-7 (4/7), 6-3, 6-0, 6-3, winning 11 straight games from 3-2 down in the second set as he reached the second week of a Grand Slam for the first time.
"I think this was one of my craziest experiences so far in my career," Blockx said after firing 17 aces past Cobolli.
"After the first set I told myself to stay calm. I wasn't playing bad. I know deep inside I'm a fighter and I will fight until the last ball and it paid off today."
Blockx next faces Francisco Cerundolo, who rallied from two sets down to upset ninth-seeded Fritz 3-6, 4-6, 6-3, 6-4, 6-4.
Down 4-3 on serve in the final set, the 24th seed from Argentina fought back from 0-40 down to hold, coming up with a trio of booming serves and a thundering forehand before taking the game with another service winner.