The Sensex opened with a negative gap of 21 points at 9,263, which turned out to be the low for the day.
Buying at lower levels saw the index zoom to an intra-day high of 9,402 - an intra-day swing of 139 points. The Sensex finally closed with a gain of 110 points (1.2%) at 9,394.
The Nifty gained 32 points to 2,843.
ACC advanced 3.6% (Rs 19) to Rs 556. Gujarat Ambuja gained over 2% to Rs 82. Grasim, however, was down Rs 6 at Rs 1,370.
HLL moved up 3.6% (Rs 7) to Rs 195. SBI added Rs 19 to Rs 942. Reliance gained Rs 8 to Rs 857. ITC was up Rs 4 at Rs 145.
Infosys gained Rs 29 to Rs 3,017. While TCS was up Rs 14 at Rs 1,733, Satyam was up Rs 12 at Rs 733.
Hindalco zoomed 4% (Rs 6) to Rs 147. L&T gained Rs 23 to Rs 1,731. Tata Steel added 3% (Rs 12) to Rs 380. Bharti moved up Rs 8 to Rs 359.
Ranbaxy dropped to a low of Rs 355 in early deals, but finally closed with a loss of 5.9% (Rs 23) at Rs 367. Cipla and Dr. Reddy's, however, finished with gains at Rs 432 and Rs 945, respectively.