Kuldeep then dismissed Tom Hartley and Ollie Robinson in four balls, before Ashwin raced to his fifth wicket as stumper Dhruv Jurel took a brilliant reflex catch to oust James Anderson.
India began day three with 134 runs behind, but Jurel and Kuldeep Yadav (28 off 131 balls) shared a crucial 76-run stand for the eighth wicket to help the hosts fight back in the match.
In the 102nd over of India's innings at 358 for 7, Ashwin tried to run down the pitch after pushing the ball to covers but was called back by Dhruv Jurel.