With the advent of distributed and renewable energy sources, maintaining the stability of power grid is becoming increasingly difficult. Traditional power grid can be transformed into a smart grid by augmenting it with information and communication technologies, and machine intelligence. Machine learning and artificial intelligence can enable smart grid to make intelligent decisions and respond to sudden changes in customer demands, power outages, sudden drops and rises in renewable energy output or any other catastrophic events. Machine learning can also help capture customer consumption patterns, forecast energy demand and power generation of intermittent sources, and predict equipment failures. Reinforced learning can aid in making energy dispatch decisions and activate demand management signals in order to maintain balance of power supply and demand. The usage of wireless technologies in smart grid renders it vulnerable to cyber security threats. With the increase in data volume, it is now possible to employ machine learning for the detection and prevention of anomalous behaviour, intrusion, cyber-attacks, and malicious activities as well as data authentication. This paper reviews the application of different machine learning approaches that aims at enhancing the stability, reliability, security, efficiency and responsiveness of smart grid. This paper also discusses some of the challenges in implementing machine learning solutions for smart grid.