Snapping three days of losses, the Sensex at the Bombay Stock Exchange surged 388 points to close at 20,605 on Monday.
The Sensex rose on fresh buying by foreign funds, amid lower crude oil prices after a historic deal between world powers and Iran on its nuclear programme.
The Nifty at the National Stock Exchange jumped 120 points to 6,115.
Stock markets in Japan, China, Hong Kong, South Korea and Singapore ended mixed.