Benchmark indices broke three-day losing streak and ended higher with Nifty around 16,200.
At close, the Sensex was up 503.27 points or 0.94% at 54,252.53, and the Nifty was up 144.40 points or 0.90% at 16,170.20.
About 1712 shares have advanced, 1509 shares declined, and 126 shares are unchanged.
Tata Steel, JSW Steel, Apollo Hospitals, SBI and HDFC Bank were among the top Nifty gainers, while losers included ITC, UPL, Divis Labs, Sun Pharma and Reliance Industries.
Among sectors, metal, IT, power, realty, bank and oil & gas up 1-3 percent.
The BSE midcap index rose 1.4 percent and smallcap index added 0.78 percent.