Markets ended higher for the third consecutive session on Thursday helped by positive global cues. The BSE Sensex ended at 58,807.13, up 157.45 points or 0.27%. The Nifty ended at 17,516.85, up 47.10 points or 0.27%.