Eoin Morgan led from the front to take Kolkata Knight Riders to a five-wicket win over Punjab Kings and end their four-game losing streak in the IPL.