The world number one was much-improved under the sunshine on Court Philippe Chatrier after finding life difficult in damp conditions the night before, finally seeing off dogged Argentinian Schwartzman on his fourth match point.
Nadal will face Argentina's Juan Martin del Potro who wept courtside after downing third seed Marin Cilic 7-6 (7/5), 5-7, 6-3, 7-5.
"It was a very difficult match, Diego is a good friend and a good player," said the 16-time Grand Slam champion.
"After the stop for rain I played more aggressively and I'm very happy to be back in the semi-finals here."
It is the 11th time the 32-year-old Spaniard has reached the French Open last four, becoming only the third man in history to achieve the feat at a Grand Slam tournament, after Jimmy Connors at the US Open and Roger Federer at Wimbledon and the Australian Open.
Nadal returned to the court midway through serving to level the match after bad weather ended play early on Wednesday evening.
The struggles he faced on Wednesday in losing a set at Roland Garros for the first time since 2015 were put to bed during the second day of the match, as he broke 11th seed Schwartzman's serve four times in the final two sets to ease through.
The injured-plagued former US Open champion Del Potro battled through in three hours and 50 minutes after the match had been delayed by rain on Wednesday to reach the last four at Roland Garros for the second time, but first in nine years.
"It's tough to speak now," said an emotional Del Potro.
"I've been a long time without feeling good with my body. I had surgery three times on my wrist and I was close to quitting this sport. I don't have words to explain what this means to me and my team."
The fifth seed has now beaten Cilic eight times in a row, but on Friday he will face arguably the toughest test in tennis when he takes on 10-time champion Nadal for a place in the final.