The defending champion lost the opening set against the Argentine - his first dropped set of the tournament - but roared back to take the match 4-6 6-3 6-2 6-2 and avoid a monumental upset at Roland Garros.
Having seen Novak Djokovic fall to a shock defeat in his quarter-final earlier this week, Nadal knew that his path to an 11th French Open title was even clearer, although it quickly became evident that Schwartzman would not be an easy win for the Spaniard.
Nadal was forced to save four break points before taking the very first game, but Schwartzman refused to relent and did manage to get the break in Nadal's next service game.
The world number one responded immediately with a break of his own, but Schwartzman created at least one break point in each of Nadal's service games during the first set and the Spaniard fell to three of those.
Even two breaks of his own were not enough for Nadal to prevent the Argentine taking the opener 6-4 with his third set point, and it looked as though it might be more of the same when Schwartzman broke Nadal again in the third game of the second set.
Once again Nadal broke right back, though, and even though he lost his own service game next up, he won three games in a row on Schwartzman's serve to level things up.
The third set was more straightforward for the 16-time Grand Slam champion as he wrapped it up in 45 minutes thanks to two breaks, and he won five successive games in the final set to move to the brink of victory.
There was still fight left in Schwartzman, though, and the Argentine saved a match point before pulling it back to 5-2, but that was only delaying the inevitable and Nadal sealed the victory in the very next game.