India started off Day 3 with pace at both ends, with the hope of exploiting early morning conditions. Zaheer Khan and S Sreesanth bowled nagging lines outside the off-stump, going past the bat on numerous occasions.
Kumar Sangakkara started the day in style, flicking a full delivery on the pads through square leg for a boundary in the first over of the day, while Tharanga Paranavitana got his first boundary by opening the face of the bat to guide Zaheer through third man in his next over.
Sreesanth struck the day's first blow, dismissing Paranavitana. The Kerala pacer bowled a perfect out-swinger which got the edge of the left-hander and was brilliantly taken by the skipper M S Dhoni behind the stumps.
The left-hander scored 38 from 84 deliveries, inclusive of six boundaries, adding 82 runs for the second wicket with Sangakkara.
Ojha claims maiden Test wicket
Pragyan Ojha, who is making his Test debut, impressed, as he not only kept the runs down, but also grabbed his maiden Test wicket when he dismissed the in-form Mahela Jayawardene.
Jayawardene, who struck a double century in the last Test, looked to loft Ojha over mid-on, but failed to connect and spooned an easy catch to Sachin Tendulkar
Ojha then came back to pick the wicket of Muttiah Muralitharan. He finished with the figures of 23-12-37-2.
Sreesanth grabs a five-fer
Sreesanth was the pick of Indian bowlers, picking his second five-wicket haul, and first in India.
Making a comeback into the Indian team, the Kerala pacer was in complete contrast to his usual self, curbing his natural aggression and bowling a good line and length.
He dismissed Paranavitana, Thilan Samaraweera, skipper Kumar Sangakkara, Prasanna Jayawardene and Rangana Herath for figures of 22-4-75-5.
Sri Lanka in rough waters
With the Sri Lankan first innings folding up at 229, India skipper Dhoni asked the visitors to follow-on.
With a humungous 413-run deficit to strike off before India can bat again, the Lankans faltered again, losing wickets at regular intervals.
There was little hope when Sri Lanka's two most experienced players -- Jayawardene and Sangakkara -- were in the middle and looked to see off the day's play. But Sangakkara misjudged a single off to mind-on, which proved disastrous for the visitors. The ball went straight to Yuvraj Singh, who threw the ball to the striker's end and caught Jayawardene way short off his crease.
Harbhajan deals a deadly blow
With the top four batsmen already back in the pavilion, the onus was on Sangakkara to play a long innings. However, the southpaw failed yet again as he played on a Harbhajan Singh delivery as Sri Lanka were reduced to 54 for 4.
Sangakkara was dismissed in the similar fashion in the first innings too when he played on a Sreesanth delivery. He had made 44 then. In the second innings he could only manage 11.
With sizeable deficit yet to clear off, the hosts are well and truly in the driver's seat.