Gauff reached her first final in Rome with a gritty win in a match marked by wild momentum swings.
She let a 5-3 lead slip in the opener but capitalised on Zheng’s double faults to edge a scrappy first set, which featured 35 unforced errors from both players.
Zheng hit back with an early break in the second to force a decider, but after failing to serve out the match, the Olympic champion faded in the final tiebreak.
The American held her nerve to book a second straight WTA 1000 final, following her runner-up finish in Madrid.
"I told myself I'm ready to go home," said an exhausted Gauff after the win.
"It was tough for me, finding my rhythm, especially at night, it was so slow, I just tried to stay in there.
"I was frustrated. She forced me to get out of my comfort zone."
Paolini is the first Italian to advance to the final in Rome since her doubles partner Sara Errani lost to Serena Williams in 2014.
Earlier in the day, she beat American Peyton Stearns 7-5, 6-1 to book her spot in the decider.