The Colombo Stock Exchange's main index rose 1.2 percent, or 64.12 points to 5,387.33, its highest close since Nov. 26.
"The market is upbeat on foreign buying in blue chips," said a stock broker.
Foreign investors bought a net 120.2 million rupees worth of shares, extending the net foreign inflow this year to 36.42 billion rupees.
The day's turnover was 877.1 million rupees ($6.82 million) shy of this year's daily average of 898.5 million rupees.
The rupee closed weaker at 128.75/85 to the dollar compared with Wednesday's close of 128.50/70 on importer dollar demand, dealers said.
($1 = 128.6500 Sri Lanka rupees)
(Reporting by Ranga Sirilal and Shihar Aneez; Editing by Sanjeev Miglani)