Nadal, a nine-time champion in Rome, had never lost to the 15th-ranked Schwartzman in nine previous meetings. But Schwartzman dictated the baseline rallies and produced a series of drop-shot winners as Nadal uncharacteristically made unforced errors and struggled to get his first serve into play.
For two months during the lockdown, Nadal said, he didn't touch a tennis racket.
"It's a completely special year -- an unpredictable year,'' Nadal said. "At least I played three matches.''
While Nadal won his opening two matches this week in straight sets, his rustiness showed from the start against Schwartzman.
Nadal committed nearly twice as many unforced errors as Schwartzman, 30 to 17, and won only 29 of 63 points on his serve -- resulting in five breaks.
"Losing that many serves, you can't expect to win a match,'' Nadal said. "So something that I have to fix. I know how to do it."
Nadal, who chose not to play in the US Open because of travel concerns amid the coronavirus pandemic, had not played a tournament since winning a title in Acapulco, Mexico, in February. He now has one week to regroup before he attempts to win a record-extending 13th French Open title.
Roland Garros starts next weekend.
"I'm going to keep working and keep practicing with the right attitude and I'm going to try to give [myself] a chance to be ready,'' Nadal said.
Schwartzman came up with a series of clutch shots, perhaps none better than during the second game of the second set when he won a 17-shot rally to save a break point by running down a drop shot and passing Nadal with a forehand that landed on the line.
"It was my best match ever," Schwartzman said.
Nadal suggested he struggled with the humidity on a warm evening.
"Conditions out there was much heavier than the previous days in terms of the bounces of the ball,'' Nadal said. "Was difficult to push him back. He did a great job.''
Halep, who lost two straight finals in Rome to Elina Svitolina in 2017 and 2018, will need to beat two-time Grand Slam winner Garbine Muguruza to return to the championship match. Muguruza required more than two hours to eliminate US Open runner-up Victoria Azarenka 3-6, 6-3, 6-4.
"[Muguruza] feels really well on [the] clay court and here," Halep said. "It's a big challenge.
"I really want to win this tournament," added Halep, who will be playing her fifth semifinal in Rome. "I love playing here. ... It's one of the biggest goals now."
Halep was ahead 6-2, 2-0 when Putintseva decided she was in too much pain to continue -- having already taken an off-court medical timeout between sets.
The 30th-ranked Putintseva was coming off two long three-set matches, having upset eighth-seeded Petra Martic and 10th-seeded Elena Rybakina. Entering the match, she had been on court for 7 hours, 22 minutes -- far more than Halep, who had a bye in the opening round and won her next two matches in straight sets.
Putintseva also reached the US Open quarterfinals in her previous tournament, while Halep decided to skip the event in New York because of coronavirus travel concerns.
Halep improved to 8-0 since the tennis restart and 12-0 overall stretching back to February.
Vondrousova beat Svitolina 6-3, 6-0, and Pliskova defeated Elise Mertens 6-3, 3-6, 6-0.
The Associated Press contributed to this report.