The Sensex and Nifty defied gravity for the second straight session on December 23 as investors scooped up IT and FMCG shares amid a firm trend in global markets.
A recovering rupee and global drugmakers' assertion that their COVID-19 vaccines will work against a new coronavirus strain the U.K. further shored up investor confidence, traders said.
The 30-share BSE Sensex rallied 437.49 points or 0.95% to close at 46,444.18.
Similarly, the broader NSE Nifty surged 134.80 points or 1% to 13,601.10.
HUL was the top gainer in the Sensex pack, spurting 2.67%, followed by Infosys, M&M, SBI, ITC, IndusInd Bank, Bajaj Finance, Asian Paints, Bharti Airtel and TCS.
Only four index components closed lower — Titan, PowerGrid, NTPC and HDFC, shedding up to 0.81%.
Global markets were largely positive after drug companies like BioNTech, Moderna and AstraZeneca exuded confidence that their COVID-19 vaccines will be effective against the new virus strain reported in the U.K..
However, gains were capped after U.S. President Donald Trump hinted at vetoing the $900 billion economic aid package passed by the Congress due to the "ridiculously low" $600 aid for individuals.
"Market is continuing its rally amidst concerns over new virus strain, lockdown and weak global cues, fuelled by IT, mid and small caps. The additional stimulus announced in the U.S. did not gain much momentum in the global market as the quantum of the benefit was well-factored, but Europe and emerging markets are maintaining the buoyancy.
"In the coming days, the market will also focus on Brexit trade deals which is expected to be finalised soon and fallout in the economy due to strict lockdown," said Vinod Nair, Head of Research at Geojit Financial Services.
All sectoral indices ended with gains. BSE realty, metal, IT, telecom, teck, FMCG and industrials indices surged as much as 3.97%.
In the broader markets, the BSE midcap and smallcap indices rallied up to 2.65%.
Elsewhere in Asia, bourses in Shanghai, Seoul, Hong Kong and Tokyo ended on a positive note.
Stock exchanges in Europe were also trading with gains in early deals.
Meanwhile, the global oil benchmark Brent crude futures rose 0.12% to $50.14 per barrel.
The rupee snapped its two-day losing streak to settle higher by 8 paise at 73.76 against the U.S. dollar.