The Sensex after a firm start dropped into red.
The index recovered for a short while only to lose all its gains and touch a low of 20,047.
After changing directions at least seven times during the day, the BSE benchmark touched a high of 20,336.
The index finally ended (provisional) at 20,309 -- up 152 points.
The Nifty ended up 50 points at 6,121.
"I do not see further downside in the long-term on the back of robust growth prospectus and good quarterly results. Foreign inflows will continue", says Subhash C Aggarwal, CMD, SMC Global Securities.
European stocks have dropped for the fourth straight day on debt worries. Asian markets also ended in red. Hang Seng dropped 1% to 24,027.
The Chinese markets had crashed 5% on Friday. The Nikkei and Shanghai Composite on the other hand, added 1% each in trades.
BSE bankex jumped 2.3% following the inflation data which was in-line with analyst's expectations. Government data showed that the inflation in October has risen 8.58%.
SBI jumped 4.4% to Rs 3,164. HDFC bank added 2.8% to Rs 2,385. ICICI Bank was up 1.7% at Rs 1,223.
Corporate earnings decided the direction of trade for some stocks. Tata Steel gained 2% at Rs 620 on reporting a turnaround in Q2 net profits.
Reliance Communications on the other hand dropped 3% in today's trades but managed to recover - ending flat at Rs 170. The company reported 40% drop in consolidated net profit at Rs 445
Tata & Nippon Steel may begin another mega venture
RCom introduces Braille bill service
Tata Tele overtakes BSNL
RCom eyes 3G roll out by next year
Tata Steel takes CSR to the silver screen