Federer beat the German 6-1, 7-5, 6-2 in an hour and 32 minutes on Rod Laver Arena.
The former world number one will make an astonishing 13th semi-final appearance at Melbourne Park in 14 years and his victory on Tuesday evening sets up an enticing clash with his long-time Davis Cup team-mate Wawrinka, the 2014 Australian Open champion.
Federer admitted after the match that he had already surpassed his expectations for the tournament, which is his first major after six months out following knee surgery.
“It was not to play semis … I thought I was maybe going to win a few rounds – depending on the draw maybe get to a fourth round or the quarters,” said Federer, who is seeded 17th at Melbourne Park.
“I never thought it was going to be this good, and here I am in a semi against Stan. It couldn’t be cooler for the both of us.”