The fifth seed overcame nerves to win 7-6 (3) 7-6 (4) 4-6 7-6 (6) and set up a clash with Alexander Zverev, who reached his first slam semi-final by beating Stan Wawrinka in four sets.
Wimbledon champion Simona Halep raced through to the last four, beating Anett Kontaveit in less than an hour, and there she will face a resurgent Garbine Muguruza, who defeated Anastasia Pavlyuchenkova.
Picture of the day
Tweet of the day
Federer on the naughty step
Roger Federer was furious at being given a warning for swearing during his quarter-final victory over Tennys Sandgren and the 20-time grand slam champion's indiscretion has cost him a rare fine of 3,000 US dollars (approximately £2,300).
France's Benoit Paire has been given the biggest fine so far, 7,500 dollars for an offence of unsportsmanlike conduct, while Nick Kyrgios' two racket smashes have earned him combined punishment of 5,000 dollars.
Fed Cup for Coco
Coco Gauff's involvement in the Australian Open may be over but on Wednesday came the news that she has received a first call-up to the USA Fed Cup team for their play-off against Latvia next weekend.
If she plays, the 15-year-old would be the second youngest player ever to represent the US after Jennifer Capriati. Meanwhile, US Open champion Bianca Andreescu, who missed this tournament through injury, will make her return in Canada's tie with Switzerland.
Women: Anett Kontaveit (28), Anastasia Pavlyuchenkova (30)
Men: Rafael Nadal (1), Stan Wawrinka (15)
Who's up next?
The 50th meeting between Roger Federer and Novak Djokovic is the headline act on Thursday as both men chase a place in another grand slam final.
Before that, the women's semi-finals see home favourite Ashleigh Barty bid to ramp up the hype even more when she takes on Sofia Kenin and Halep meet Muguruza.
Britain's Joe Salisbury will attempt to reach his first grand slam final in men's doubles. He and American partner Rajeev Ram face Kazakh duo Alexander Bublik and Mikhail Kukushkin.