Berdych, seeded third here, had to dig deep to overcome his Swiss opponent, coming from a set down to seal a 3-6 7-6 (10/8) 6-4 victory in two hours and 19 minutes.
Federer, who also saw his 2012 US Open campaign ended by the Czech at the quarter-final stage, needed just a single break to take the opening set while the pair exchanged breaks in the second before Berdych edged a competitive tie-break.
The third set was then all about Berdych, who created seven break points to Federer's none but could only convert one of them as the second seed put up a show of resistance.
However, one was all it needed as Berdych emerged the victor to set up a meeting with Djokovic, who had to overcome some second-set resistance from Juan Martin Del Potro to win their semi-final.
Del Potro saved a match point at 5-3 and then broke as the world number one served for the match a game later.
But Djokovic rose to the challenge once again to claim a 6-3 7-6 (7/4) win in one hour and 44 minutes.
The world number one has yet to lose in 2013 and Del Potro had few complaints about the result.
"He deserved to win," said the Argentinian. "He played so well in the tie-break.
"I was break up in the second set and I made mistakes."