The rupee ended at 46.3350/3400 per dollar, off an early low of 46.3850 and slightly firmer than the previous close of 46.3600/3650.
"There was some dollar demand from corporates which pulled the rupee down," said a chief dealer at a private sector bank. "But there was sporadic dollar sales from state-run banks, perhaps for the central bank, which curbed a sharper fall."
Traders said there were dollar inflows from foreign funds, which also helped the rupee.
But the local currency is likely to come under pressure in the next few days as state-run refiners step up purchases in a market increasingly wary about the high price of crude oil, India's biggest import item, traders said.