After hitting a high of 31,225.20 during the day, the 30-share BSE barometer ended 1,265.66 points or 4.23 per cent higher at 31,159.62.
Similarly, the NSE Nifty soared 363.15 points, or 4.15 per cent, to 9,111.90.
Mahindra and Mahindra was the top gainer in the Sensex pack, surging over 16 per cent, followed by Maruti, Titan, Bajaj Finance, HDFC, Bajaj Auto and Hero MotoCorp.
On the other hand, HUL, Tech Mahindra, IndusInd Bank and Nestle were the laggards.
"Indian markets started trading on a positive note taking upbeat cues from its Asian peers in the morning session as policymakers discussed the process of reopening the global economy as data showed a slowing spread of Covid-19," said Narendra Solanki, Head- Equity Research (Fundamental), Anand Rathi.
During the afternoon session, market further strengthened on back of expectations of second stimulus package estimated at around Rs 1 lakh crore and focus on helping small and medium businesses, which led to both broad-based buying and also triggered some short covering, he added.
Vinod Nair, Head of Research at Geojit Financial Services said, "Indian markets in sync with Global markets were up again today on expectations of infections peaking out and for more stimulus measures to be announced. This uptrend seems to be a short term bear market rally and may not be sustainable. In India, there is speculation that the package may help worst affected sectors and MSMEs may get some relief in the package to be announced."
A Bank of America Securities report said the Centre may soon announce another fiscal package which may be almost similar to the Rs 1.75 lakh crore stimulus unveiled last month.
Elsewhere in Asia, bourses in Shanghai, Hong Kong, and Seoul ended on a positive note, while Tokyo closed in the red.
Stock exchanges in Europe started significantly higher. Meanwhile, the rupee provisionally settled 6 paise higher at 76.28 against the US dollar.
Brent crude futures, the global oil benchmark, rose 4.2 per cent to USD 34.16 per barrel.
The death toll due to the novel coronavirus in India rose to over 160 and the number of cases crossed 5,700, according to the Union Health Ministry.
Global tally of the infections has crossed 14.8 lakh, with over 88,000 deaths.