The Colombo Stock Exchange's main index rose 0.83 percent or 46.02 points to close at 5,570.91, its highest since Nov. 14.
Foreign buying accounted for 69.3 percent of turnover and offshore investors bought a net 119.1 million rupees worth of shares, extending net foreign buying this year to 37.9 billion rupees.
John Keells Holdings, bought by foreign investors, gained 0.46 percent to 218 rupees.
"Foreign buying helped the market to end higher and we expect to see positive sentiment when the new year starts as interest rates have fallen sharply," a stockbroker said on condition of anonymity.
Treasury bill yields eased by between 21 and 49 basis points at a weekly auction on Monday in line with a surprise cut in interest rates earlier this month.
The day's turnover stood at 242.4 million rupees ($1.91 million), compared to this year's daily average of 885.8 million rupees.
Stock and money markets were closed on Tuesday and Thursday for Christmas and a Buddhist religious holiday.
The rupee closed steady at 127.00/10 to the dollar, in dull trade, currency dealers said.
($1 = 126.9500 Sri Lanka rupees) (Reporting by Shihar Aneez; Editing by Ron Popeski)