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.
For the first 90 minutes, the pitch seemed ordinary, but then it revealed its bag of tricks, expertly exploited by Ashwin and Kuldeep to claim crucial wickets
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.
England's final three wickets fell for just six runs in 17 balls, with Ravindra Jadeja taking two of them, finishing as India's standout bowler with figures of 4-67.
Akash Deep, who claimed 11 wickets in four games for India 'A' against England Lions last month, inflicted most of the damage with his impressive 3-24 spell on a crack-ridden pitch.
Rohit Sharma (131) and Ravindra Jadeja (112) struck fine hundreds while debutant Sarfaraz Khan made a promising start to his Test career with an impressive 62 off 66 balls.
The formidable partnership of 204 runs between captain Rohit and Jadeja firmly placed India in control on Day 1 of the ongoing third Test against England in Rajkot on Thursday.
However, miscommunication with star all-rounder Ravindra Jadeja in the middle cut short his lovely debut innings as he was run out by Mark Wood at the non-striker's end.
With India reduced to 33 for three inside the first hour of play, Rohit (131 off 196) and Jadeja (110 batting off 212) as India reached 326 for five at stumps on day one of the third Test against England on Thursday.
India were jolted early by Wood's express pace and movement off the surface which saw the home team's best batter in the series Yashasvi Jaiswal (10) walking back without contributing much.
Ahead of the third Test, players like Sarfaraz Khan and Dhruv Jurel were handed their Test caps.
English skipper Ben Stokes is to play his 100th Test match.