The victory allowed the 20-year-old Serbian to avenge a loss to Federer in last year's U.S. Open title match.
Djokovic kept his record of not having dropped a set in the event intact by hitting 50 winners and saved seven of nine Federer break-point chances.
"It's unbelievable to beat the No. 1 player in the world, probably the best this court has seen," said the third-seeded Djokovic after his second career victory in seven meetings against the Swiss great. "I am amazed at the way I coped with the pressure and I played my best tennis."
"He made the more important points today," Federer said.
The three-time Australian Open champion and 12-time Grand Slam winner had a 19-match winning streak in Melbourne and streak of 10 consecutive appearances in Grand Slam championship matches stopped.