The off-spinner (4-71) removed well-set Kumar Sangakkara and Malinda Warnapura in successive overs before Sri Lanka struggled to reach 215-5 in their first innings at stumps in reply to India's 329 on the second day.
Sangakkara (68) and Warnapura (66) helped Sri Lanka overcome the third-ball dismissal of Michael Vandort with a 133-run stand for the second wicket before Harbhajan struck to restore India's fortunes on a spinners' day.
Skipper Mahela Jayawardene was unbeaten on 46 and Prasanna Jayawardene on five not out at the close of play.
India were bowled out on the stroke of lunch after resuming at 214-4, with explosive opener Virender Sehwag (201 not out) becoming only the second Indian after Sunil Gavaskar to carry his bat through the innings.
Sehwag also became the 10th Indian to complete 5,000 Test runs during his fifth score of 200 and more, including two triple-centuries. He hit four sixes and 22 fours in his 231-ball knock.
buy symbicort online buy symbicort online no prescription
The Indian batsmen, especially Sehwag, were in