Virat Kohli has scored 84 off 98 balls to lead India to a four-wicket win over Australia in their blockbuster Champions Trophy semi-final in Dubai.