Ashwin was six for 31, his best test haul, while left-arm spinner Pragyan Ojha picked up three wickets as New Zealand were all out on the stroke of lunch, trailing India's first innings tally of 438 by 279 runs.
New Zealand, resuming on 106 for five, lost their first wicket in the second over of the day when Umesh Yadav picked up the only wicket by a paceman in the innings by dismissing Kruger van Wyk for a duck.
Ojha added the wicket of Doug Bracewell (17) to his overnight tally of two before Ashwin was brought into the attack by captain Mahendra Singh Dhoni.
Ashwin wasted no time and took a low return catch to dismiss Jeetan Patel in his first over of the day for his fourth wicket in the innings.
He then struck twice in successive deliveries to send back Trent Boult (four) and Chris Martin (nought) to end New Zealand's first innings.
Only left-hander James Franklin (43 not out) offered some resistance with only two New Zealand batsmen facing more than 27 deliveries.
India decided to enforce the follow-on with the threat of rain disruptions during the remaining two days. Saturday's play started an hour late after morning showers dampened the outfield. – Reuters