Equity benchmark Sensex ended 59 points higher after a highly volatile session on Monday amid tepid cues from global markets as concerns over COVID-19 kept investors on edge.
After swinging over 566 points during the day, the 30-share index ended 59.28 points or 0.19 percent higher at 31,648.
On the other hand, the NSE Nifty settled 4.90 points, or 0.05 percent, lower at 9,261.85.
Index heavyweights HDFC twins and Reliance Industries mainly saved the day for the BSE benchmark. IT stocks also closed with gains.
HDFC Bank was the top gainer in the Sensex pack, rallying nearly 4 per cent, after the lender posted a 15.4 per cent rise in consolidated net profit at Rs 7,280.22 crore for the March quarter on healthy interest income.
Infosys jumped over 3 per cent ahead of its quarterly earnings, scheduled to be announced later in the day.
Sun Pharma, NTPC, HCL Tech, Tech Mahindra, HDFC, RIL and TCS also closed with gains.
On the other hand, Axis Bank was the top laggard, followed by ITC, ICICI Bank, IndusInd Bank and Maruti Suzuki.
The domestic market opened on a positive note but lost the momentum as traders booked profit amid weak global markets as both equity and commodity - especially crude oil - came under pressure amid global slowdown fears, said Narendra Solanki, Head- Equity Research (Fundamental), Anand Rathi.
In the afternoon session markets continued to trade in a narrow range and swung between positive and negative zones, he added.
Bourses in Hong Kong, Tokyo and Seoul ended in the red, while Shanghai closed on a positive note.
Stock exchanges in Europe were also trading on a mixed note. Brent crude futures, the global oil benchmark, fell 3.53 per cent to USD 27.09 per barrel.
Meanwhile, the rupee declined by 14 paise to settle at 76.53 (provisional) against the US dollar amid strengthening of the American currency overseas and a sharp rise in coronavirus cases in the country.
The death toll due to Covid-19 rose to 543, while the number of cases in the country climbed to 17,265.
Global tally of the infections has crossed 24 lakh, with over 1.65 lakh deaths.