Led by metal and realty shares, the Sensex on Wednesday gained for the second straight day and ended 37 points higher at 17,462.81, its highest close in nearly 11 weeks, amid a weak trend in global markets.
The BSE benchmark index, which had gained 27 points in the previous session, added another 37.10 points, or 0.21 per cent to end at 17,462.81. This is the highest closing after the index settled at 17,503.71 on April 19.
The 30-share Sensex traded in a 150-point range with Sterlite, Jindal Steel and Maruti leading the 20 scrips that rose while ONGC, Dr Reddy and Wipro were among the 10 losers.
Brokers said the market remained jittery on fears that a deficient monsoon might effect the country's agri-based economy and also add to inflation worries.
While there was buying in selective blue-chips after rupee strengthened to 54.18 earlier - its strongest since May 17 - the currency erased the early gains and was last trading at the 54.8 level a US dollar.
Market participants mostly ignored a HSBC survey that showed India's services sector activity inched up in June - the eighth straight month of growth.
A mixed trend in Asian region and lower opening in the European indices continued to keep pressure on the Indian market as every surge faced profit-booking, they added.
"Markets are making smaller ranges since the start of this week. This makes it susceptible to profit booking, especially after the strong rise seen last week," said Milan Bavishi, Head Research, Inventure Growth and Securities.
The BSE-Metal sector index gained the most (up 2.12 per cent), followed by BSE-Realty index (1.91 per cent) and BSE-Consumer Durables index (0.68 per cent). On the other hand, BSE Oil & Gas index lost 0.56 per cent and BSE-IT shed 0.38 per cent.
Similarly, the 50-share National Stock Exchange index Nifty added 14.60 points, or 0.28 per cent to 5,302.55, after moving between 5,317.65 and 5,273.30.