The 30-share barometer BSE Sensex gained 48.46 points, or 0.23 per cent, to 21,023.25. The index had lost 264.57 points in the previous session.
Stocks of IT, realty, oil and gas and consumer durable sectors led the recovery.
Similarly, the broad-based NSE Nifty moved up by 16.55 points, or 0.25 per cent, to 6,269.70.
Brokers said fresh buying by funds and retailers helped the trading sentiments to improve.
They said, however, a weak trend at other Asian bourses following overnight losses in the US markets as fresh data added to speculation the Federal Reserve will soon cut back on its stimulus, capped the gains in the domestic stock market.
Among other Asian markets, Hong Kong's Hang Seng index fell by 0.25 per cent, while Japan's Nikkei shed 0.37 per cent in early trade.
The US Dow Jones Industrial Average ended 0.13 per cent lower in yesterday's trade.