The benchmark BSE Sensex, tracking a mixed trend overseas, surrendered most of its gains in early trade and finally closed 17 points higher as participants locked in gains.
It has managed to complete a three-session winning streak.
On a weekly basis, the Sensex and the wider Nifty added 801.91 points (2.89%) and 249.30 points (2.98%), respectively.
More From This Section
Later, profit-booking took hold that wiped off the gains completely and took the benchmark back to the negative zone as it touched a low of 28,417.46. But some late-buying saved the day and helped the Sensex close higher by 17.19 points, or 0.06 per cent, at 28,463.31.
The index has now gained 530.41 points in the past three straight sessions.
Banking stocks, which were in the limelight yesterday, saw some selling pressure following reports that the government's approval of composite foreign investment cap by clubbing all forms of overseas investments won't benefit the sector, brokers said.
The 50-share Nifty, after climbing to the session's high of 8,642.95, too succumbed to the selling pressure and settled the day at 8,609.85, up 1.80 points, or 0.02 per cent.
Intra-day, it went below the 8,600-mark to touch a low of 8,593.15.
Of the 30-pack Sensex, 19 ended with gains and 11 lost.
Little-changed European stocks after their longest stretch of gains since January and a mixed closing at other Asian markets influenced sentiment, they added.
BHEL was the star of the day, up 2.02 per cent, followed by M&M, Infosys, Vedanta and ITC.
Bucking the trend, HDFC ended in the red. Others including Coal India, Hind Unilever and Axis Bank too lost ground.
Sector-wise, BSE consumer durables index gained the most (up 1.92 per cent), followed by technology, power, IT and healthcare.
Buoyed by buying from retail investors, the small-cap index ticked up 0.44 per cent and mid-cap index 0.20 per cent.