The Spaniard, who returned to the ATP circuit only last month after seven months out with a left knee injury, broke the Czech once to take the opening set, then won a tense second set to improve his record this year to a career-best 16-1.
Nadal, who won the last four games to come from 3-5 down in that second set, will next meet Argentina's Juan Martin Del Potro, who ended top seed Novak Djokovic's unbeaten run with a 4-6 6-4 6-4 victory in the second semi-final.
"For me this is totally unexpected to be in the final," a beaming Nadal said courtside after beating the sixth-seeded Czech for a 13th time in 16 meetings.
"But here we are today, and I'm very happy about all what happened the last month, especially the last three weeks.
"Is not easy coming back after an important injury after seven months without playing a tournament and be back and winning against three top 10s like David Ferrer, like today against Berdych, the other day against Roger (Federer)."
Nadal swept aside Spanish world number four Ferrer 6-0 6-2 in the final of the Mexican Open two weeks ago and crushed long-time rival Federer 6-4 6-2 in the Indian Wells quarter-finals on Thursday.
"So coming back is certainly something amazing for me," the Spaniard said. "I feel very comfortable in this tournament. I feel very happy when I am here."
Twice a champion at Indian Wells, Nadal looked every inch like his former self, hitting crisp and deep ground strokes to keep Berdych under continual pressure and occasionally unleashing his trademark inside-out forehand crosscourt winner.
On a sizzling hot afternoon at the Indian Wells Tennis Garden, the opening set went with serve until the seventh game when Berdych double faulted, hit a forehand long and dumped a forehand into the net to trail 0-40.
Though the Czech saved the first two break points on forehand errors by fifth seed Nadal, he lost the game on the third when he blasted a forehand wide as he hungrily eyed a winner down the line.
The Spaniard served out to take the set in 42 minutes, applying the finishing touch with a well-placed 119 mph service winner that Berdych was unable to return. It was the first set the Czech had lost during the tournament.
Both players held serve until the eighth game of the second set when Nadal, despite getting a favourable net cord bounce as he tried to save his first break point of the match, double-faulted to trail 3-5.
However, the Spanish left-hander immediately broke back, after Berdych hit a forehand long, before holding to level the score at 5-5.
"I play my best game of the match at 3-5, playing very aggressive, having two very, very good points with my forehand down the line," Nadal said. "That was very important, no?"
Nadal then broke the Czech for a third time in the 11th, squandering his first break point at 30-40 but taking advantage of the second when Berdych mistimed an overhead as he gazed up into the sun, the ball careening off his racket and bouncing well beyond the baseline.
The tension mounted as Nadal served for the match in the 12th game, the Spaniard coming back from 0-30 down and saving three break points before he sealed victory on his second match point when Berdych pushed a backhand wide.
Nadal leaped in delight with both arms raised in celebration as he advanced to the final at Indian Wells for a fourth time.
"Even if I had a lot of success the last weeks for example, today I was very nervous at the end of the match to close the match," Nadal said. "I was lucky that my serve worked amazing in the last game in important moments."
Asked if Nadal had looked like the Rafa of old with his movement about the court, Berdych replied: "I think so. He was moving quite well.
"Maybe he will say something different because it's him, his body, and he has a feeling for that, but I think he looks strong again."