The NSE Nifty 50 index closed up 0.7% at 11,762.45, while the S&P BSE Sensex ended 0.64% higher at 39,982.98.
Both indexes ended the week 1.3% lower as profit-booking in banking and IT stocks on Thursday, along with a global sell-off driven by concerns over rising coronavirus cases in Europe and a stalled U.S. stimulus deal, ended Indian equities' longest gaining streak in nearly six years.
Leading the gains on Friday, the Nifty Metals index rose 4% as shares of Tata Steel and JSW Steel gained 5.3% and 6.7% each.
The Nifty Bank index ended 2% higher, recovering from a slide in the previous session as shares of HDFC Bank and Axis Bank gained 2.9% and 1.9% respectively.
Although the Nifty IT index briefly gained as much as 1.6% earlier in the day, it traded 0.14% down after ending the previous session 2.9% lower.
The sub-index was weighed down by a slide in shares of Mindtree Ltd after the IT firm's revenue growth for the second quarter disappointed markets.
(Reporting by Philip George in Bengaluru; Editing by Vinay Dwivedi)