A sharp fall in the dollar overseas and continued capital inflows also boosted the Indian rupee. The dollar index, which tracks the performance of the US currency against six major global rivals, was down 0.62 per cent.
The rupee's rise was the most since December 16 and helped the local currency complete its second weekly gain in a row.
At the interbank foreign exchange market, the rupee opened strong at 61.97 a dollar from the previous close of 62.16. It fell to a low of 62.16 on month-end dollar demand from importers, mainly oil refiners.
The rupee bounced back to a high of 61.8325 on firm local stocks and dollar sales by exporters and some banks before ending at 61.85, a rise of 31 paise or 0.50 per cent. Yesterday, it had dipped 37 paise to a more-than-three-week low of 62.16.
"Rupee was seen weakening during the day amid dollar buying," said Abhishek Goenka, CEO of India Forex Advisors. "Later during the session, the rupee was appreciating, helped by the positive closing in the Indian benchmark indices."
The benchmark 30-share S&P BSE Sensex today advanced 119 points or 0.56 per cent. Foreign institutional investors bought shares worth a net USD 126.47 million yesterday, according to Sebi data, taking the total to over USD 20 billion in the current calendar year till December 26.
"The dollar index...is trading weak for the second consecutive day, helping rupee to trade strong," said Pramit Brahmbhatt, CEO of Alpari Financial Services (India). "Also, Indian equities closed up by over half per cent, which strengthened the rupee."
Positive Asian currencies and a fall in the non-deliverable forwards market also aided the rupee recovery.
Forward dollar premiums softened further on sustained receipts by exporters.
The benchmark six-month forward dollar premium payable in May eased to 225-226 paise from 227-1/2 to 229-1/2 paise yesterday. Far-forward contracts maturing in November slipped to 468 to 469-1/2 paise from 469-471 paise.
The RBI fixed the reference rate for the dollar at 62.0595 and for the euro at 85.2748.
The rupee dropped further to 102.15 against the pound from 101.81 previously and dipped to 85.53 against the euro from 85.12.
It rose to 59.01 per 100 Japanese yen from 59.34.