Top conglomerate John Keells Holdings closed 0.63 percent to a new over two-year high of 160.25 rupees a share.
"A new U.S. based fund bought Keells shares and the sellers were institutional," an analyst said on condition of anonymity.
Keells accounted for over 88 percent of the day's turnover of 5.3 billion rupees ($46.2 million), its highest since July 28, last year. The daily average in 2008 was 464 million rupees. Net foreign buying hit 2.36 billion rupees, mainly from Keells trade.
Analysts said the foreign buying in the past few days has improved investor confidence, which had been declining since the government announced an early national election next year.
Sri Lanka's presidential election is scheduled for Jan. 26 and it will be followed by parliamentary election due by April.