The main share index ended 0.18 percent or 11.43 points firmer at 6,220.10, its highest close since June 12.
'Retail sentiment is dead. Only foreign buying and some thin trading in market heavyweights is keeping the market up,' a stockbroker said on condition of anonymity.
High interest rates and overall falling shares have prompted retail investors adopt a 'wait-and-see' approach, brokers said.
Foreign investors were net buyers of 103.5 million rupees worth of shares, extending the year-to-date net foreign inflow to 17.3 billion rupees.
Analysts said local investors were also cautious and awaited further direction despite the central bank easing monetary policy as concerns over the weakening rupee and high lending rates dented sentiment.
Market heavyweight Ceylon Tobacco Company jumped 8.6 percent to 1,382 rupees a share.
Turnover was 646.6 million rupees, less than this year's daily average of about 920 million rupees.
(Reporting by Shihar Aneez; Editing by Anupama Dwivedi)
(email@example.com)(+94-11-232-5540)(Reuters Messaging: firstname.lastname@example.org)