The third seed's 3-6 6-4 6-3 win in Beijing took the 29-year-old to a first hard-court semi in more than a year.
Novak Djokovic extended his winning streak to 27 matches with a 6-2 6-2 win over John Isner and the Serb will meet David Ferrer in the last four.
Agnieszka Radwanska and Ana Ivanovic are both through in the women's draw.
Italian Fognini, 28, beat Uruguay's Pablo Cuevas 6-1 2-6 6-2 to set up a meeting with Nadal, who he defeated in the third round at Flushing Meadows.
Nadal's fellow Spaniard Ferrer, 33, overcame Taiwan's Lu Yen-Hsun in straight sets to set up his match with 28-year-old world number one Djokovic.
Radwanska, 26, beat Angelique Kerber 6-1 6-4 in her quarter-final, while Serb Ivanovic, 27, saw off Anastasia Pavlyuchenkova 6-3 7-5.
Radwanska will face Wimbledon finalist Garbine Muguruza, after the 22-year-old Venezuelan beat American Bethanie Mattek-Sands  6-1 7-5.
Ivanovic will take on Switzerland's Timea Bacsinszky, who overcame a shocking first set to defeat Sara Errani of Italy 0-6 6-3 7-5.
Rafael Nadal came from behind to beat Jack Sock and book a China Open semi-final meeting with his US Open conqueror Fabio Fognini.