Roger Federer has won his 20th Grand Slam singles title with a 6-2, 6-7 (5), 6-3, 3-6, 6-1 victory over Marin Cilic in the Australian Open final.