The benchmark BSE Sensex on Monday climbed by 244.32 points to close at over two-week high of 28,504.46 and the rupee gained 30 paise against the dollar ahead of the RBI's monetary policy meet on Tuesday, while gold climbed to over one-month high.
The NSE Nifty also recaptured the 8,600-level by rising 73.65 points or 0.86% to settle the day at 8,659.90.
Sustained buying in healthcare, realty and FMCG stocks helped the 30-share BSE barometer to end the day at 28,504.46, a rise of 0.86% or 244.32 points.
The Sensex had closed at 28,622.12 on March 18.
"Defensive stocks were moving ahead before the important policy meet on Tuesday. As RBI is likely to hold rates, there is scope to surprise the market through CRR/SLR and assessment of future outlook," said Vinod Nair, Head-Fundamental Research at Geojit BNP Paribas Financial Services.
Meanwhile, banking stocks came under selling pressure ahead of the RBI meet, with ICICI Bank, HDFC Bank, Punjab National Bank, Bank of India among the major losers.
On Sensex, Sun Pharma stocks zoomed 8.34% to close at a lifetime high of Rs 1,168.50 after the company entered into a pact looking to settle a lawsuit against it. Whereas, Cipla and Dr Reddy's rose by 3.59% and 4.33%, respectively.
Absence of cues from global markets which remained closed on Monday for the Easter holiday, forced participants to keep their commitments selective, brokers said.
In line with equities, the Indian rupee strengthened by another 30 paise to close at 62.19 against the dollar on sustained selling of the American currency by banks and exporters on hopes of good foreign capital inflows amidst weaker-than-expected US jobs data released last weekend.
Gold prices in national capital spurted by Rs 240 to over one-month high of Rs 27,250 per 10 gm on Monday amid firming global trends and increased demand from jewellers. At Mumbai, the precious metal rose by Rs 210 to Rs 26,990 per 10 gm.
Gold also rose in Singapore by 1.4% to USD 1,223.51 an ounce, the highest price since February 17 and silver by 0.9% to USD 17.21 an ounce.