The Sensex closed 64.42 points higher at 73,983.18 after giving up most of an early 694-point rally.
The Nifty ended 27.15 points lower at 23,214.95 after hitting an intraday high of 23,425.35.
Oil and gas, metal and telecom stocks led the late-session decline, while banking and FMCG names supported the indices.