Melbourne - Rampant defending champion Novak Djokovic powered past Milos Raonic to set a blockbuster Australian Open semi-final against Roger Federer after the Swiss ace saved an incredible seven match points in one of his greatest escapes.
The Serbian world number two, despite trouble with his contact lenses, tamed the big-serving Canadian 6-4, 6-3, 7-6 (7/1) as he targets an eighth Melbourne Park crown and 17th Grand Slam title.
Six-time champion Federer is next, after one of his most memorable comebacks against unseeded American Tennys Sandgren.
The 38-year-old great, the oldest man to reach the Melbourne semis since Ken Rosewall 43 years ago, came through an action-packed clash 6-3, 2-6, 2-6, 7-6 (10/8), 6-3.
He fended off seven match points and was slapped with a warning for swearing, while taking a rare medical timeout for a groin injury that hampered his movement.
But he dug deep to set up yet another showdown with his old rival Djokovic. The pair are all-conquering in Melbourne, sharing 12 of the last 14 titles between them.
They have played each other 49 times, with the Serb in front 26-23.
"I have tremendous respect for Roger," said Djokovic, who became emotional in his on-court interview when asked about the tragic death in a helicopter crash of Kobe Bryant, a personal friend.
"The match-ups I have had against Roger and Rafa (Nadal) have made me the player I am today," he added.
"May the best player win."
While Federer - into a record 15th Australian Open semi - has laboured through 14 sets in his last three matches, Djokovic has had a much easier ride, dropping just one set all tournament.
But the world No 3 Swiss star insisted he felt fine.
"It really depends sometimes how you're feeling inside, how much it takes away from you. But I must say I feel pretty good right now," said the 20-time Grand Slam champion.
His comeback against Sandgren was the stuff of legend, with the victory his 102nd at Melbourne Park, surpassing his tally at Wimbledon to make the Australian Open his most successful Slam in terms of matches won.
After comfortably taking the first set, he felt the groin strain midway through the second. He wasn't moving well and making too many errors.
He took a medical timeout but lost the set and the next one.
But he seemed to get a second wind and saved four match points at 5-4 down in the fourth set and another three before winning the tie-breaker and romping to victory as the adoring crowd went into a frenzy.
Federer admitted he was "incredibly lucky" to still be in the tournament, but he planned to make the most if it.
The fit-again Raonic reached the Melbourne semi-finals in 2016, when he lost to Andy Murray, and the quarters on three other occasions, including last year.
He had failed to beat Djokovic in nine previous attempts, but possesses a monster serve and was unbeaten in 59 straight service games heading into their clash.
That all changed when he faced his nemesis, perhaps the best returner in tennis.
"I felt great on court, I was very focused," said Djokovic.
He threatened straight away, earning break points on the Raonic serve several times before finally converting to take the set and snap the Canadian's run.
After the 63-game streak on his serve, his next amounted to just one game, broken again in the fourth game of the second set as Djokovic took a stranglehold.
The relentless Serb, who has won 11 straight matches this season, went toe-to-toe with the Canadian in the third set when at 4-4 he called for new contact lenses, which turned into a medical timeout.
Raonic wasn't impressed that he didn't wait until the changeover.
Djokovic appeared to struggle with his vision on his return, but it quickly came back into focus as he raced through the tiebreaker to book his ticket to the semi-final.
Results on day nine of the Australian Open Grand Slam at Melbourne Park on Tuesday (x denotes seeding):
Roger Federer (SUI x3) bt Tennys Sandgren (USA) 6-3, 2-6, 2-6, 7-6 (10/8), 6-3
Novak Djokovic (SRB x2) bt Milos Raonic (CAN x32) 6-4, 6-3, 7-6 (7/1)
Sofia Kenin (USA x14) bt Ons Jabeur (TUN) 6-4, 6-4
Ashleigh Barty (AUS x1) bt Petra Kvitova (CZE x7) 7-6 (8/6), 6-2