The left-arm unorthodox bowler recorded his first five-wicket haul in Tests while fellow spinner Malinda Pushpakumara took three wickets.
Eyeing a whitewash Virat Kohli-led team India won the toss in the 3rd Test versus Sri Lanka at Kandy and had no hesitation in batting first.
Pandya then struck a body blow with the ball as well trapping Angelo Mathews (0) lbw in the 10th over as Lanka were reduced to 38 for 4. Dhawan goes for a flat slog-sweep off Pushpakumara.
Dhawan reached his second century of the series soon after as Pujara joined him.
Because MS Dhoni doesn't play Test cricket, he was called to prove his fitness at National Cricket Academy (NCA) in Bengaluru along with teammate Kedar Jadhav, Suresh Raina, Yuvraj Singh, Jasprit Bumrah and other probable candidates for the limited-overs series.
"If it's consistent it's going to be good going ahead because players will be more aware of how they need to conduct themselves on the field and it'll only help the game get better", the skipper told reporters.More news: Arsenal attacker Alexis Sanchez out of Premier League kickoff
More news: Markets Right Now: Stocks drift lower on Wall Street
More news: Arsenal 4 v Leicester City 3: Giroud Nets Winner
Rahul (85) gave another exhibition of his class at the top of the order, becoming only the sixth man to score 50 or more in seven consecutive Test innings courtesy of a first-wicket stand of 188.
The Indian cricketer bolted an wonderful 108 runs with the help of 15 boundaries - eight 4s and seven 6s- before he was taken down as Dilruwan Perera catches his shot on Sandakan's ball.
Rahane was castled by Pushpakumara, the right-hander being too circumspect and offering a poor shot to a straight delivery without much deception. At stumps Wriddhiman Saha (13 batting) and Hardik Pandya (one batting) were holding the fort.
Pushpakumara bowled Ajinkya Rahane (17) and Sandakan claimed the scalp of Kohli, who was taken by Karunaratne at slip eight short of a half-century, in a strong Sri Lanka fightback. Asked if the team is looking forward to that record, Kohli said: "For us it's just about playing another Test match and trying to win another Test match".
Ravichandran Ashwin (31) looked compact but became leftarm seamer Vishwa Fernando's scalp at the fag end of the day.
With Yadav and Sandakan featuring in the match, it is only the second time since 2004 when two "chinaman" bowlers are playing in the same game after Dave Mohammed (West Indies) and Paul Adams (South Africa) at Cape Town.
The former then fell immediately afterwards caught behind off Sandakan.