Austria's Dominic Thiem
The Austrian, who lost the Roland Garros final to the Spanish great last year, denied Nadal the opportunity to become the first man to capture the same ATP title 12 times.
"I'm happy with how I played, I was competitive for the first time (in a few matches)," Nadal insisted.
Thiem will on Sunday face Daniil Medvedev, a 6-4, 3-6, 7-5 winner over two-time tournament winner Kei Nishikori.
"Things were positive even if I lost. Congrats to him, he's a great guy and a great player," added top seed Nadal who was a semi-final loser last week to Fabio Fognini in Monte Carlo where he was also an 11-time champion.
"Today I played at a good level, it was a great improvement on last week, when I was not competitive at all.
"I enjoyed the match, I'm feeling the way I want to feel about my game. I'm happy and I'm confident."
Third-seeded Thiem took revenge for not only his 2018 French Open final loss to Nadal but also avenged losing the 2017 Barcelona title match to the 32-year-old Spaniard.
Nadal had never before lost a Barcelona semi-final.
Thiem joins Novak Djokovic as the only player to have defeated Nadal four times on clay after Buenos Aires in 2016, Rome in 2017 and last year in the Madrid quarter-finals.
Fourth seed Nishikori had reached the final of the Catalan clay-court event three times, winning in 2014 and 2015 but losing the 2016 final to Nadal.
"He played very aggressive and was better today on the clay," Nishikori said after his loss to Medvedev. "It was a close match, he played well at the right moments."
The players exchanged breaks in the third set before the seventh-seeded Medvedev seized the first match point to break in the 12th game.
Nishikori had defeated Medvedev in January's Brisbane final, a success which ended a 51-tournament title drought for the Japanese ace.
In spite of defeat, Nishikori remained pleased with his progress on clay ahead of upcoming Masters events in Madrid and Rome.
"I'm happy with how I'm playing. Even today, I played well," he said.
"I've got my confidence back again on clay. It was important for me to do well this week. I want to be ready for the next big events."
Medvedev, who shook some salt into his mouth during a third-set changeover just to spark his tiring muscles -- apparently not for cramping -- said his game remained in top gear.
"I felt ahead of him mentally in the final set. That is how I managed to break at 6-5," said Medvedev.
"This match shows I'm able to play well on clay against the top 10 guys. I'm feeling strong physically and mentally.
"I'm very happy to win, this gives me big confidence and shows I can do a lot."