The 30-share index was trading 214.96 points, or 0.59 per cent, higher at 36,914.80.
Gold price of Rs 36,970 per 10 gram is the highest in the domestic market till date.
After cracking over 700 points in day trade, Sensex pared losses to close at 36,699.84, still down by 418.38 points.
On the Multi Commodity Exchange, crude oil for delivery in August contracts fell by Rs 18 to Rs 3,873 per barrel.
Market sentiment also improved after the government moved a bill to propose bifurcation of Jammu and Kashmir.
Rupee was trading down by 77 paise at 70.37 against the US dollar, amid uncertainty over Kashmir Issue.
Rupee is trading at 70.58 against dollar, tracking weak opening in domestic equity market and unabated foreign fund outflows.
The 30-share index was trading 531.94 points or 1.43 per cent lower at 36,586.28.
The economic slowdown has translated into falling oil demand in the United States, the world’s biggest oil consumer.
The cuts would track a backwardation between prompt and third month Dubai prices that narrowed by 70 cents a barrel in July versus June.