Federer, who won the tournament in 2009, was unable to find a foothold in the match as Wawrinka powered his way to a 6-4 6-3 7-6 (7/4) victory.
It means Federer has failed to reach the last four in three consecutive years at Roland Garros while Wawrinka will now face either Kei Nishikori or Jo-Wilfried Tsonga for a place in the final.
Wawrinka set the tone in the very first game as Federer was forced to come through five deuces and three break points to hold serve.
The number two seed could not survive the third game, however, as a superb single-handed backhand gave Wawrinka the decisive break he needed to serve out the opening set.
Federer desperately tried to assert his authority in the second but Wawrinka’s aggressive hitting never wavered and in the seventh game he broke again.
Serving to stay in the set at 5-3, Federer kept faith with his attacking approach but his opponent was too quick, hitting two brilliant passing shots to break again and seal a two-set lead.
There was little to separate the duo in the third as Wawrinka’s ground-shots began to miss their mark but Federer failed to capitalise and the set drifted into a tie-break.
With the score 3-3, there was a moment of controversy as Wawrinka’s forehand out was overturned by the umpire, who then handed him the point despite Federer’s protestations it should be replayed.
The decision seemed to unsettle the 17-time grand slam champion, as Wawrinka won the next two in a row to open up three match points.
Federer saved one with a brave forehand winner but it made no difference as Wawrinka dispatched a volley to seal a surprise, but deserved, victory in two hours and nine minutes.