Lakmal's sensational spell, in which he struck thrice without conceding a run in six overs, saw him removing opener Lokesh Rahul on the first ball of the match after play began three and a half hours late due to wet conditions.
His other two victims were Shikhar Dhawan (8), who played a loose shot in testing conditions to play on to his stumps, and India captain Virat Kohli (0), who was trapped in front off a ball that came in sharply.
In the second over after tea, skipper Kohli was trapped anticipating an away delivery when the ball sharply cut back in.
Kohli went for the review but was given out on umpire's call to bring his innings to an end with zero from 11 balls.
More From This Section
Cheteshwar Pujara was unbeaten on eight after playing 43 deliveries in an anxious stay at the crease with Ajinkya Rahane at the other end.
Bad light and rain meant only an hour's play was possible in the day.
The post-tea period began at 3.30 pm and there was no change to India's score in the session but the Lankans added the prized-wicket of Kohli in a 17-minute session.
Dinesh Chandimal won a fine toss and opted to bowl under overcast conditions as Lakmal made full use of the Eden greentop.
Relishing the conditions, Lakmal produced an unplayable delivery that pitched on middlestump line and went away to take a feather edge of Rahul.
Continuing his dream start, the Lankan new-ball bowler almost cleaned up Pujara with a fuller inswinger following Rahul's dismissal.
But luckily for the most dependable India batsman, the ball which darted back in went inches above the middle stump.
Touring here for a Test series for the first time since 2009, Sri Lanka have lost 10 matches and drawn six as they search for a maiden win on Indian soil.