Roddick was over-run by the reigning Australian Open champion in an hour and 23 minutes.
Federer won a tight first set after breaking in the ninth game and served out to win it with his sixth ace, but it was one-way traffic after that as the world number one took 11 straight games against a shell-shocked Roddick.
The Swiss raced through the second set in just 22 minutes, using a bewildering array of shots from the back of the court to frustrate Roddick.
Roddick ended the streak at 11 games to make it 2-1 in the fourth but Federer broke again to make it 4-1 and sealed victory in 83 minutes on his second match point with a forehand winner, his 45th of an astonishingly one-sided semi-final.