In the process, it reversed its three-session losing spell as Reliance Industries led the rally after global crude prices dropped. Infosys jumped the most.
The Sensex opened hit the day's high of 33,165.15 before settling up 346.38 points, or 1.06 per cent, at 33,106.82. This is the highest closing of November 10 when it had closed at 33,314.56.
The Sensex had lost 554.12 points in the previous three sessions on subdued exports, higher inflation and muted second quarter earnings of some companies.
Both the indices recorded single-biggest gains since November 1.
There was widespread value-buying amid firm global cues.