The 30-share BSE Sensex opened on a strong footing at 33,768.47 and hit a fresh intra-day high of 33,964.28. It ended at 33,940.30, a new closing, up 184.02 points, or 0.55 per cent.
The previous closing record was on December 19 when it had finished at 33,836.74. The index had lost 80.46 points in the previous two sessions.
The broader Nifty gained 52.70 points, or 0.50 per cent, to end at a fresh peak of 10,493, breaking its previous record of 10,463.20 hit on December 19.
The rupee soaring to an over fresh three-month high against the dollar during the day fuelled the upward trend.
The stock exchanges will remain closed on Monday for Christmas.