The initial trading trend was firm after a rally in Asian stocks, although the lack of any major trigger amid the Christmas break kept the market within a tight range, a broker said.
The 30-share S&P BSE Sensex opened higher and traded in a narrow, positive range until the afternoon. The index then moved erratically on alternate bouts of buying and selling, touching the day's high of 21,135.85. Futures contracts in the country expire on the last Thursday of every month.
The SX40 on the MCX Stock Exchange rose 23.10 points to end at 12,533.26.
HDFC Bank, Infosys and ONGC together lifted the Sensex by about 59 points, while Reliance Industries and TCS dragged it lower.
More From This Section
Power shares led nine of the 12 BSE sectoral indices higher.
The absence of foreign funds from the market due to year-end holidays affected trading volumes, brokers said.
Foreign institutional investors slowed their purchases and bought shares worth a net Rs 40.67 crore on Tuesday, according to provisional data from the stock exchanges.