The rupee erased earlier gains even after the finance minister announced a slew of measures to narrow the current account deficit, as dealers felt the proposals lacked specifics.
The Sensex rose 0.84 per cent, or 157.64 points, to end at 18,946.98, gaining for a second consecutive session. The Nifty also gained 0.84 per cent, or 46.75 points, to end at 5,612.40, closing above the psychologically important 5,600 level.
More From This Section
ITC gained 3.2 per cent after HSBC upgraded the stock to "overweight" from "neutral", while maintaining its target price of 400 rupees, citing prospects of earnings growth "resilience.
Drugmakers climbed after reporting strong quarterly results. Sun Pharmaceutical Industries shares rose 7.1 per cent after April-June earnings were seen as positive after factoring out a provisioning charge to settle a patent suit.
Cipla gained 1.5 per cent after its April-June net profit rose 18.5 per cent to Rs 475 crore.
Macquarie upgraded Cipla to "outperform" from "neutral" and raised its target price to Rs 480 from Rs 400, saying the drugmaker's April-June earnings were "significantly above" their estimates.
Aurobindo Pharma surged 12 per cent after posting a profit of Rs 18.6 crore for April-June compared with a loss of Rs 128.9 crore in the same quarter a year earlier.
Britannia Industries ended 5.9 per cent higher after earlier hitting an all-time high of Rs 773 as its July-quarter profit rose 92.53 per cent to Rs 89.49 crore.
Shriram EPC shares ended 3.2 per cent higher after it said company agreed to sell its stake in Sree Jayajothi Cements Ltd to My Home Industries Ltd, owned by Ireland's building materials provider CRH.
However among stocks that fell, State Bank of India, the country's largest lender, fell 3.5 per cent after it posted a second consecutive drop in quarterly net profit, missing estimates, on worsening asset quality, higher operating expenses and muted growth in interest income.
The state-run bank posted on Monday a 13.6 per cent drop in net profit to Rs 3,241 crore in the fiscal first quarter that ended in June compared with Rs 3,752 crore a year earlier.
Mahindra and Mahindra shares fell 0.3 per cent a day ahead of its June-quarter earnings.