It was an impressive scalp for the Wawrinka, ranked nine places lower than Berdych, who reeled off four straight games to turnaround a 2-4 final set deficit.
Wawrinka started the match quickly, breaking his opponent in the opening game before taking the first set courtesy of an untimely Berdych double fault.
Berdych soon woke from his slumber and started reeling off a series of comfortable service holds and broke Wawrinka late in the second set to force a decider.
But despite being broken early on in the third set, Wawrinka found another gear and won four straight games to complete a remarkable turnaround.
He now faces the formidable task of finding a way to topple the inform Nadal in tomorrow’s final.
The pair had met ten times ahead of this meeting, each triumphing on five occasions, with Berdych emerging victorious from their most recent clash in the Davis Cup earlier in 2013.
However it was Wawrinka who began the stronger, sealing a break in the opening game with a flurry of fine groundstrokes and good hands at the net as Berdych struggled to find his range.
Although the Czech improved as the first set progressed he failed to capitalise on the few opportunities he created and was soon serving to stay in the opening set but instead of heaping pressure on his opponent, Berdych limply handed the set to Wawrinka with a double fault at set point.
Berdych began the second set looking imperious on serve, regularly holding to love, but rather meek when returning. However the match’s complexion changed when Berdych changed his racket 4-3 down.
The small stoppage appeared to give him focus and he broke Wawrinka at the next opportunity as he forced the Swiss player to net before holding to force a decider.
Berdych soon led 4-2 in the third set, but when Wawrinka won a crucial backhand battle the Madrid crowd started to sense the opportunity for a fight back and got behind the Swiss number two.
And Wawrinka capitalised on his new found momentum, winning four consecutive games to claim an impressive victory over the world number six and earn a spot in the Madrid Masters final against Nadal.