Sri Lanka were cruising at one stage, reaching 145 for one in chase of 261 but chinaman Yadav picked three wickets in a single over to diffuse their challenge.
Chahal took four wickets, including that of opener Upal Tharanga (47), as India hammered Sri Lanka by 88 runs to take an unassailable 2-0 lead in the three-match series.
"They are bowling really well and generally the wrist-spinners with their variations are hard to pick. But this wicket offered very little for the bowlers and was excellent for batting and we could have done better," Perera said at the post match press conference.
"We tried to capitalize with fours and sixes. We didn't want too many dot balls. We tried to hit out and ended up losing too many wickets," added the 27-year-old, who top scored for the visitors with his 37-ball 77. Yadav dismissed Kusal, captain Thisara Perera and Asela Gunaratne in the 15th over to end Sri Lankan hopes.
"Kuldeep took three wickets in an over. The momentum went away from us at that moment and we never recovered," Perera lamented.
Asked if they made a mistake by asking India to bat first, Perera defended the decision.
"We have to back our strengths. We have good batsmen, but Rohit and KL Rahul were brilliant with that partnership. We tried to back ourselves and play to our best when batting, but it didn't go our way," he said.
"Winning and losing are part of the game. We try to learn from what we did wrong. As a team we are trying to improve. We have to think of our batting and how we can do things better." Talking about his own explosive innings on comeback.
Perera said, "I backed myself. It was very pleasing to get going after a long injury lay off. I believe in my ability.
"However, your individual performances don't matter and you have to think of the team winning and that's what counts."
First Published: December 23, 2017, 1:45 PM IST