The S&P BSE benchmark Sensex snapped 5-week losing streak by surging 100 points on fresh buying mainly in the last three days in view of recovery in the Indian rupee, amid Prime Minister's assurance on currency and growth of the economy.
Receding fears of an imminent attack on Syria after British lawmakers voted against military action in the House of Commons, which had kept global oil prices under pressure, also boosted market sentiment.
Frantic short-coverings ahead of the expiry of derivative contracts on August 29 too helped to the rise.
Prime Minister Manmohan Singh told Parliament that the country will face "short-term shocks" but exuded confidence that growth in the current fiscal will rise to 5.5 per cent, up from a decade's low of 5 per cent in 2012-13. He acknowledged that growth in the first quarter will be relatively flat.
On the rupee, Singh said, "The sudden decline in exchange rate is certainly a shock, but we will address this through other measures, not through capital controls or by reversing reforms."
The Sensex resumed higher at 18,602.56 and dropped below 18,000 level to 17,448.71 due to heavy selling pressure following sharp depreciation of rupee to an all-time intra-day low of 68.85 against the dollar on August 28 on concerns over rising subsidy burden after the passage of the Food Security Bill and possibility of military action against the Syria.
However, it recovered later due to appreciation of rupee value against the dollar on steps taken by the Central bank amid heavy buying by Life Insurance Corporation (LIC), the country's biggest institutional investor to 18,728.19 before finishing at 18,619.72, disclosing a gain of 100.28 points or 0.54 per cent. It had dropped by 1,630.41 pts or 8.09 per cent in the previous five weeks.
The RBI late Wednesday allowed the three state-owned oil companies to buy dollars from the Central bank. The PSU oil companies are the biggest buyers of dollars, requiring $8-8.5 billion every month for the import of an average 7.5 million tonnes of crude oil.
The NSE 50-share Nifty also ended marginally higher to 5,471.80 from 5,471.75 last weekend's level.