Seventh-ranked Zheng triumphed 6-2, 7-5 and will face either Croatia's Donna Vekic or Anna Karolina Schmiedlova of Slovakia in the gold medal match.
"I feel more than just happy -- happy isn't enough to describe how I feel," said Zheng, who had played back-to-back three-hour matches to make the semi-final.
"If you ask me to play another three hours for my country, I would.
"It was an amazing match. To beat Iga is not easy as it's an important event for her."
Swiatek, a four-time French Open champion at Roland Garros, went into Thursday's match at a sweltering Court Philippe Chatrier on a 25-match win streak in Paris.
The 23-year-old had also defeated Zheng in all of their six previous meetings.
However, she was hit off the court by the powerful 21-year-old Australian Open finalist who broke the Pole three times in the opening set.
Swiatek appeared restored by a 10-minute break and quickly stretched out to 4-0 lead in the second set before Zheng battled back, retrieving both breaks for 4-4.
The Chinese star broke again for a 6-5 lead against the error-plagued Swiatek and claimed victory in the next game, having reeled off seven games in succession.
By making the final, Zheng is the first Chinese man or woman to reach an Olympic singles gold medal match, bettering the run of Li Na who finished fourth in the women's event at Beijing in 2008.
Swiatek was left to rue her 36 unforced errors in a tie where she also dropped serve six times.