Djokovic will meet the winner of the other semi-final between Alexander Zverev of Germany and Austria's Dominic Thiem.
Novak Djokovic once again beat great rival Roger Federer at a Grand Slam on Thursday, winning 7-6(1), 6-4, 6-3 to reach the Australian Open final and remain on course for a record-extending eighth title at Melbourne Park.
It was the 50th act of one of the greatest rivalries of the sport and the odds were heavily stacked against Federer as the Swiss had not beaten the Serb at a major since 2012 on the grass courts of Wimbledon.
Federer's journey on the blue courts of Melbourne Park had been far from smooth as he was two points from losing against John Millman in the third round and then saved seven match points to get past American Tennys Sandgren in Tuesday's quarter-final.
The 20-time Grand Slam winner, however, got out of the blocks briskly on a hot evening to wrest early initiative as Djokovic struggled with his service games.
Federer was up 4-1 and 40-0 on Djokovic's serve but the Serb managed to save all three breakpoints to win his first service game as his opponent made an array of unforced errors.
The Swiss, who had to take a lengthy medical timeout against Sandgren for a groin problem, was not keen on engaging Djokovic in rallies and hit an incredible 26 winners in the first set.
But the count of his errors also started creeping up as Djokovic regained control to get the set back on serve and then played and took the set with an imperious display in tiebreak.
Both players received medical attention at the end of the first set and it was once again Djokovic who raised his game up a notch to convert his fourth breakpoint chance with a forehand winner at the net to grab the second set.
Djokovic kept up the pressure on the 38-year-old Swiss in the third set and the crucial break came for him in the sixth game with a forehand groundstroke winner for a 4-2 lead.
The 32-year-old, winner of 16 Grand Slam titles, sealed his 27th win over Federer with his first match point when the Swiss found the net with a backhand for his 35th unforced error of the night.
In Sunday's final, Djokovic will meet the winner of the other semi-final between Alexander Zverev of Germany and Austrian Dominic Thiem, who beat world number one Rafa Nadal in the quarter-finals.