Extending gains for the second session, the BSE Sensex rose 142 points on Thursday led by pharma, metal, auto and banking stocks amid buying by foreign and domestic institutional investors.
The 30-share Sensex settled 142.09 points, or 0.40 per cent higher at 35,898.35.
The broader NSE Nifty gained 54.40 points, or 0.51 per cent, to 10,789.85.
Tata Motors was the biggest gainer in the Sensex pack, rallying 2.94 per cent.
It was followed by Vedanta, Bajaj Finance, Sun Pharma, ONGC, ICICI Bank, Bajaj Auto, Tata Steel, RIL, HDFC duo, L&T and SBI, rising up to 2.78 per cent.
On the other hand, Yes Bank, Coal India, Infosys, IndusInd Bank, Kotak Bank, Axis Bank, ITC and TCS slipped up to 1.33 per cent.
Sectorally, the BSE metal index, consumer durables, healthcare, finance and bankex rose up to 1.14 per cent; while IT and teck indices ended with losses.
Broader indices outperformed the benchmark. The BSE Midcap index climbed 0.88 per cent while the small-cap gauge rose 1.07 per cent.
According to traders, state-owned banks rose after the finance ministry on Wednesday announced infusion of Rs 48,239 crore in 12 public sector banks (PSBs) in this fiscal to help them maintain regulatory capital requirements and finance growth plans.
Foreign institutional investors (FIIs), who had been heavy sellers over the past few sessions, net bought equities worth Rs 713.47 crore Wednesday, while domestic institutional investors bought equities worth Rs 113.27 crore, provisional data showed.
Elsewhere in Asia, Hong Kong's Hang Seng rose 0.41 per cent and Japan's Nikkei ended 0.15 per cent higher; while Shanghai Composite Index shed 0.34 per cent and Korea's Kospi slipped 0.04 per cent.
In the Eurozone, Frankfurt's DAX was up 0.28 per cent, Paris CAC 40 fell 0.06 per cent, and London's FTSE was down 0.63 per cent in early deals.
The benchmark Brent crude futures fell 0.12 per cent to USD 67 per barrel.
Meanwhile, the rupee depreciated marginally to 71.14 against the US dollar intra-day.