The Colombo Stock Exchange's main index ended 0.54 percent or 28.92 points, firmer at 5,363.60, edging up from its lowest since Sept.4.
Foreign investors accounted for more than 58 percent of the day's turnover of 877.5 million rupees ($6.74 million), buying a net 461.7 million rupees worth of shares. That helped to extend the net foreign inflow this year to 35.4 billion rupees.
Daily average turnover this year is 906 million rupees.
Shares in conglomerate John Keells Holdings gained 1.24 percent to 211.70 rupees on foreign buying, dealers said.
"Foreign buying in select shares pushed turnover levels while retail investors stayed away as usual due to high interest rates," said one broker who declined to be identified.
The yield for 364-day T-bills gained for a seventh consecutive week at an auction on Wednesday, central bank data showed.
Analysts said investors have been shifting to fixed deposits from equities since the central bank kept key policy rates at three-year highs on Nov. 9.
The rupee closed at 130.24/28 to the dollar compared with Wednesday's close of 130.13/17 on seasonal importer dollar demand, dealers said.
($1 = 130.1500 Sri Lanka rupees)
(Reporting by Ranga Sirilal and Shihar Aneez; Editing by Robert Birsel)
((email@example.com)(+94-11-232-5540)(Reuters Messaging: firstname.lastname@example.org))