The main stock index rose 0.85 percent, or 50.21 points, to 5,933.73, its highest close since Oct. 1, 2012.
Shares have been rising on hopes of a fall in interest rates after Treasury Secretary P.B. Jayasundera and the central bank said official interest rates could ease in May and June.
'We have seen retailers coming back to the market on the hope of interest rates coming down,' said a stockbroker.
The turnover was 975.3 million rupees ($7.69 million), around this year's daily average of 961 million rupees.
Foreign investors were net sellers for the first time in 17 sessions. They sold a net 161.5 million rupees worth shares on Wednesday, but remained net buyers of 8.26 billion rupees so far this year. Last year, the bourse saw a net inflow of $303 million.
The rupee fell for a seventh straight session to 126.85/90 per dollar, its lowest close since March 11, due to demand from importers for the greenback despite a state bank selling dollars, currency dealers said. The currency had ended at 126.78/85 on Tuesday. ($1 = 126.8500 Sri Lanka rupees)
(Reporting by Ranga Sirilal and Shihar Aneez; Editing by Jijo Jacob)
(Reuters Messaging: email@example.com)(twitter.com/rangab a)