The Italian had come back from two sets down to knock Nadal out of the U.S. Open last month, ending the former world number one's run of winning a grand slam tournament in each of the last 10 years.
Nadal's 7-5 6-3 revenge victory earned him a title match against current world number one Novak Djokovic, who beat David Ferrer in the second semifinal.
Fognini went into the semifinal of the China Open having won three of the last four meetings of the pair, but found a resolute Nadal on the other side of the net.
Both players found it hard to hold their own serve at the start of the match in the tennis stadium which was used for the 2008 Olympics, sharing two breaks of service apiece before Nadal held to lead 3-2.
Fognini was making more errors off the ground and it was to cost him in the 12th game, trailing 5-6 as Nadal broke through again to take the set.
An angry Fognini smashed the ball into the giant grandstand and was later given an official warning by the umpire when he threw his racket away in disgust, narrowly missing a line judge.
Nadal took advantage of his discomfiture to break service for 4-2 and swept through the next game on his service to love.
Fognini bravely saved two match points in the next game and a further one as Nadal served for the match at 5-3, but the 14-time grand slam champion was not to be denied, closing it out in one hour 45 minutes.
He was clearly delighted after the earlier setbacks against Fognini and will be playing Sunday for his fourth trophy of a season which has seen him drop to eight in the rankings.
But Nadal acknowledged he will have to up his game to have a chance against Djokovic.
"I know today Novak is not in my league; he has been on a different level to me this year. So for me to be in the final is great news and tomorrow is a match to try to enjoy and try to play the way that I want to play, and we'll see," he told the ATP Tour website.
Serbia's Djokovic was always in command against Nadal's compatriot Ferrer, winning 6-2 6-3 to extend his winning run in the Chinese capital to 28 games.
In other ATP Tour action, Swiss star Stan Wawrinka moved into the final of the Japan Open in Tokyo with a straights sets victory over Gilles Muller of Luxembourg, the 47th win of the year for the French Open champion.
He will play unseeded Benoit Paire in the final after the Frenchman stunned home favorite and second seed Kei Nishikori 1-6 6-4 6-2 in the second semifinal.