The 18-time Grand Slam champion downed unseeded Keys 7-6 (7/5), 6-2 after the gallant 19-year-old saved eight match points, advancing to her 23rd final in a major.
Williams, 33, has made the Australian Open five times previously and won every time, including a victory in 2007 over Sharapova, herself a five-time Grand Slam winner who is seeded second at this year's tournament.
By advancing to the final, Williams ensures she will retain the world number one ranking she has held for more than 100 weeks, regardless of the outcome in the decider.
She also became the oldest women to ever make the Australian final in the Open era. She has a 16-2 record over Sharapova, who has not beaten the American in more than a decade.
But Williams, who can move to clear second in the list of all-time Open Era Slam winners if she takes the title, was more concerned with praising her 19-year-old compatriot Keys after a ding-dong battle.
"She's obviously a great player, she's going to be winning this tournament very soon and lots of other Grand Slams," said Williams, who hugged Keys after the match.
The teenager came out swinging in a match that featured 25 aces from two of the biggest hitters in the women's game, taking the first set to a tie-break.
Williams struggled with the power of Keys' groundstrokes but showed her guile to lob the teen on several occasions when she came to the net prematurely.
After taking the first set, Williams went up a break early in the second and Keys resistance appeared to finally be crumbling as she gave away another break with a double fault to make it 4-1.
But she made a stand serving at 5-1, saving seven match points to force Williams to serve it out. Keys managed to save one more match point off Williams' serve before the veteran ended it with an ace to advance to the final.