The 6'5" Czech sixth seed, who won the Paris Masters in 2005 and was runner-up in Miami two years ago, edged it in the tie-breaks as the powerfully-built pair sent the ball rocketing back and forth over the blue clay at the Manolo Santana show court.
Del Potro, the 10th seed and 6'6" tall, looked to be struggling more than his opponent with the slippery surface and also clashed with the umpire over a couple of line calls, refusing to shake his hand at the end of the match.
It was a desperately close contest, in which both players won a total of 79 points and broke each other's serve twice, but Berdych managed to club 41 winners to Del Potro's 30 and smashed down 15 aces to the Argentine's six.
He will play third seed Roger Federer of Switzerland or seventh-seeded Serb Janko Tipsarevic, who stunned world number one and compatriot Novak Djokovic in the quarter-finals, in Sunday's title match.
Djokovic and great rival Rafa Nadal have slammed organisers over the introduction of blue clay for this year's edition, which they say creates a dangerously slick surface, and both have threatened not to return next year unless the traditional red dirt is reinstated.
Nadal was beaten in the third round by Fernando Verdasco, his first loss to his Spanish compatriot in 14 meetings and his first defeat on clay in 23 matches.
"I always say that the conditions are the same for everyone but it's there for all to see that's it very difficult here," Del Potro told a news conference.