The Czech third seed saved three match points against the five-time champion on his way to a three-set triumph.
"It feels really amazing," said world number six Berdych. "It's really just about one single point that I was able to make better than him.
"For me, it was a celebration of tennis. I like to play him so much because of what he has achieved."
Berdych will face world number one Novak Djokovic in Saturday's final.