Click here for scorecard
Sri Lankan captain Sanath Jayasuriya scored a swashbuckling century as the home side took control of the first Test against India after the second day.
Jayasuriya slammed 16 boundaries and a six in his 111. But preferred to redirect the praise to his team-mates as Sri Lanka took a 77-run lead into the third day with seven wickets in hand.
Kumar Sangakkara, preferred as wicketkeeper ahead of Romesh Kaluwitharana, was 54 not out and Russel Arnold unbeaten on 19.
India had begun the day on 163 for five but they were skittled by fast bowler Dilhara Fernando.
The Colombo bowler tore through the Indian lower order to finish with personal best figures of five for 42, while off-spinner Muttiah Muralitharan grabbed three for 41 as India were dismissed for 187.
"I had no plan to go after the bowler every ball, but I decided if I get a loose one I will score," Jayasuriya said.
"When I was there I got the width and we batted a lot more positively than India.
"It was a great performance overall, bowling and batting. Dilhara bowled really well and Murali also, it was a good effort."
Fernando also forced Javagal Srinath to retire hurt after hitting him on the hand with a fierce delivery. The veteran paceman was able to bowl with his left hand bandaged.
Stunning spell
The home side began their reply in encouraging fashion with Jayasuriya and opening partner Marvan Atapattu putting on 101 for the first wicket.
Atapattu fell for 33 to Harbhajan Singh, but Sangakkara joined his skipper to add 70 for the second wicket.
Jayasuriya went after a 138-ball stay when Zaheer Khan produced some extra bounce and the centurion was caught by Rahul Dravid at first slip.
Earlier Fernando, who took two wickets with the second new ball on Tuesday evening, had Indian skipper Sourav Ganguly and wicketkeeper Sameer Dighe caught behind.
He also bowled Harbhajan Singh in a devastating spell before Muralitharan removed India's last batsman Venkatesh Prasad.
But Fernando said the pitch was not of much help and rated his first five-wicket haul, in South Africa last December, above the Galle performance because it had come against better batsmen.
"Although there was grass, it didn't really help the fast bowlers. I took wickets mainly through batsmen's mistakes," he said.
India are without both Sachin Tendulkar and Vangipurappu Laxman because of injuries.
Sri Lanka: ST Jayasuriya, MS Atapattu, K Sangakkara, DPMD Jayawardene, RP Arnold, H Tillakaratne, ASA Perera, WPUJC Vaas, CRD Fernando, M Muralitharan, PDRL Perera
India: SC Ganguly, S Ramesh, SS Das, M Kaif, R Dravid, HK Badani, SS Dighe, Harbhajan Singh, J Srinath, BKV. Prasad, Z Khan