Rafael Nadal produced some scintillating tennis to come from one set down to beat Roger Federer and reach his second Australian Open final.
The world number two, who won the 2009 title, lost an opening set tie-break but hit back to take the next three and win 6-7 (5-7) 6-2 7-6 (7-5) 6-4.
Third seed Federer saved one match point on Nadal's serve but the Spaniard held his nerve to take it on the next.
Nadal will play either Andy Murray or Novak Djokovic in Sunday's final.
It was another classic encounter in what remains one of sport's greatest rivalries, with the 10-time Grand Slam champion Nadal extending his winning record over Federer to 18 victories in 27 meetings.
The Mallorcan gave his best wishes to his defeated opponent after what he described as "another fantastic match".
Nadal, who injured his knee prior to the tournament, added: "Two Sundays ago I really couldn't imagine being in the final. It's a dream to be here."
Federer, bidding for a 17th Grand Slam title, started imperiously, breaking Nadal early to take a 3-0 lead only for the tenacious Spaniard to bite back to take the first set to a tie-break.
The four-time champion looked in control of the match until he relinquished his early break, with Nadal restoring parity in the seventh game thanks to a wonderful passing shot.
A mini-break was enough to ensure the 30-year-old Swiss prevailed to claim the opening set, but Nadal bounced back with vengeance to break his rival in the fifth game of the second set for an unassailable lead.
Federer's play was becoming increasingly wayward - he ended the match with 63 unforced errors compared with Nadal's 34 - as he tried in vain to fathom a way to penetrate's Nadal's stubborn defence.
Both players' service games faltered in the third set. The pair exchanged breaks before taking the set to a tie-break, with Nadal coming out on top despite Federer valiantly saving five set points.
The second seed went on to secure a crucial break in the ninth game of the final set to serve for an impressive win.