The Bombay Stock Exchange's 30-share Sensex gained 28.65 points, or 0.16 per cent to end the day at 17,970.02 points. During trade, the index touched 18,047.86 points, the highest level in more than 25 months.
The last time the Sensex was at this level was on February 27, 2008.
The market has been posting gains for the past four sessions on expectations of strong earnings by corporate, who will start reporting quarterly numbers beginning next week. But analysts said the valuations were high as the index has moved up quite fast so far in 2010.
"Upbeat investor sentiment helped market clock gains. Positive outlook from companies would help it extend the gains," Unicon Financial CEO Gajendra Nagpal said.
After gaining nearly seven per cent in March, the Sensex has already recorded a gain of three per cent in just three trading sessions in April so far.
The National Stock Exchange's 50-share Nifty ended with a rise of 0.16 per cent to 5,374.65 points.
The market sentiment was positive in early trade but the index saw heavy profit booking towards the mid-session, which analysts said was on account of weak European markets.
"Investors were expecting that European market would open in green but it actually opened flat which triggered a profit booking here. However, final hour purchasing helped the market to settle in green with modest gains," Nagpal said.
The gain in today's market was helped by the buying in the scrip of heavyweight Reliance Industries which rose 0.70 per cent.
Also telecom major Bharti Airtel gained 1.41 per cent and diversified firm ITC which moved up 1.30 per cent.