Live and ball-by-ball details
The first half of the day produced a massive opening partnership, a seventh successive 50-plus score for KL Rahul and a second century of the tour for Shikhar Dhawan. Then, Sri Lanka hit back through their trio of left-armers, the orthodox spin of Malinda Pushpakumara, the unorthodox spin of Lakshan Sandakan, and the swing of Vishwa Fernando.
India scored 188 without loss in the first 39.2 overs of the day, and 141 for 6 in the remaining 50.4. Having won their third toss of the series, they would have taken 329 for 6 at stumps, given the strength of their lower order, and given the amount of turn - albeit slow, for now - this Pallekele pitch is beginning to offer. But, given the position India's openers put them in, Sri Lanka would have ended the day thrilled with their efforts to pull things back.
The first two wickets came from aggressive shots against Pushpakumara, Rahul stepping out and failing to clear mid-on, and Dhawan sweeping hard but uppishly to square leg. Given that opening, Sri Lanka's bowlers ensured the pressure did not let up. Having seemed to go through the motions right through the morning session and for most of the post-lunch session, they suddenly began bowling with purpose.
Pushpakumara, who dropped short far too often at the SSC, bowled much fuller here, attacking the stumps and keeping batsmen guessing with his scrambled-seam delivery. On a day when India went at 3.65 per over, Pushpakumara finished with 3 for 40 from 18 overs. He entered the attack late - in the 40th over of India's innings - but made such an impact that Dilruwan Perera, Sri Lanka's most senior spinner, didn't bowl a single ball after lunch.
Sandakan, meanwhile, forced the batsmen to keep a wary eye on his wrist to pick the variations out of his hand, and in the process, they sometimes misread his variations in trajectory. Cheteshwar Pujara, rocking back to cut one that wasn't short enough, top-edged to slip.
Virat Kohli and Ajinkya Rahane saw out a testing period until tea, and found no release after the interval. Sandakan kept floating the ball above Rahane's eyeline and got it to dip, forcing him to reach for the ball. Fernando, consistently clocking speeds in the high 130s, began finding a hint of reverse, accentuating his angle across the right-handers. He teased Kohli, bowling wide outside his off stump, daring him to drive. Kohli picked off a couple of overpitched balls, and ignored the rest.
Dip undid Rahane and a loose drive undid Kohli, even if the bowler in each case wasn't the one that initiated the respective plans. Rahane, reaching well in front of his body, played across a Pushpakumara ball that didn't turn and also kept slightly low. Kohli, having fought his way to 42, threw his hands at a wide, flighted googly from Sandakan and nicked to slip.
With 13 balls left in the day, Fernando, armed with the second new ball, belatedly struck. In his 18th over of the day, he slanted one across R Ashwin, pitching just short of a good length. In his previous over, from the other end, he had kept swinging the ball back in. This one just went with the angle; Ashwin poked, and Niroshan Dickwella dived across first slip to grab a stunning one-hander.
The mood of the match was transformed, and the events of the morning seemed to belong to a distant past, although they had ensured India were probably still in the ascendancy.
Those events had occurred at great speed, the openers scoring their runs at 4.75 per over, with Dhawan going at close to a run a ball, capitalising on the smallest sign of width from the quicks and using his feet superbly against spin.
Rahul made his seventh successive 50-plus score in Test matches, becoming the joint record-holder alongside Everton Weekes, Andy Flower, Shivnarine Chanderpaul, Kumar Sangakkara and Chris Rogers. As was the case with most of the previous six innings, he looked good for a century before getting himself out, against the run of play.
Batting was expected to be at its easiest on the first day, with the pitch looking dry beneath an even but not extravagant cover of grass. Kohli chose to bat again, and Sri Lanka made life easy for his batsmen by failing to make use of the new ball.
Fernando, pushing close to 90mph and getting some swing, began reasonably well, finding Dhawan's outside edge in his second over, the ball not quite carrying as third slip dived in front of second. Lahiru Kumara, however, leaked runs, pitching persistently short, feeding Dhawan's cut and Rahul's pull.
Kumara went out of the attack after bowling just three overs and conceding 26. In his place came Dimuth Karunaratne, who, having dismissed Pujara in Colombo, now began to trouble Rahul with his wobble and lack of pace. He beat his outside edge once, then clipped it - once again the ball didn't carry to the slip cordon - and then caused an attempted flick to balloon high over mid-on. Kumara, running back and watching the ball over his shoulder, got his hand to the ball on the dive, but couldn't hold on.
That chance, in the 12th over, would be the last of the session. Leading the spin attack in Rangana Herath's absence, Perera wasn't allowed to settle, Dhawan dancing down the track in only his second over to loft him over mid-off. Rattled, the offspinner dropped short a couple of balls later and Dhawan pulled him for another four.
A return to the attack with a slightly older ball made no difference to Kumara's fortunes - he went too full, rather than too short, in his first over back, and both Rahul and Dhawan drove him for fours. By the 20th over, both batsmen had brought up their fifties.
India ended the first session on a dominant note - Rahul cutting and driving Perera for two fours in the last over before lunch - and continued in that vein after the break, with both batsmen finding the cover boundary off Fernando with drives on the up against good-length balls. Then, Dhawan brought out the sweep that had served him so well in Galle, hitting Sandakan square and fine.
Aside from a top-edged cut from Rahul off Sandakan, which flew to the left of Angelo Mathews at slip, there was little sign of a wicket arriving, but the belated introduction of Pushpakumara provoked a mistake from Rahul, a mistake that would have far-reaching consequences.
Karthik Krishnaswamy is a senior sub-editor at ESPNcricinfo
© ESPN Sports Media Ltd.