It was dramatic comeback for India, who were bundled out for a mere 202 in the morning session of the third day after resuming at 130 for four.
India needed a good start but overnight batsmen Rohit Sharma (72) and Ajinkya Rahane (26) did not last long as the visitors managed to add just 72 runs today.
New Zealand had gone to lunch at 15 for four and thereafter Taylor (41) and Corey Anderson looked to rebuild the innings but their efforts were thwarted by Shami (3/33), who bowled a fiery spell of six overs.
BJ Watling gave him support as the two players added 38 runs for the sixth wicket. But just when they were beginning to look comfortable, Taylor cut one from Zaheer (2/23) to be caught at gully by Ajinkya Rahane. He faced 73 balls, and hit four fours as well as a six.
Also Read
But it was Jadeja who delivered at the other end, sending back Tim Southee (14) even as the tailender was looking to play some attacking shots. Watling was unbeaten on 11 runs (70 balls) as the Kiwis stared at a shock collapse.
Looking to make use of the new-ball, Shami came out firing, with wickets of both openers. He trapped Hamish Rutherford leg before for a first-ball duck off the last ball of the very first over of the innings, and then, two overs later, he had Peter Fulton (5) caught driving at cover, where Jadeja took a regulation catch.
This was a second stunning catch by the all-rounder after his effort to dismiss Brendon McCullum in the first innings.
Jadeja was not done yet, running out the New Zealand skipper Brendon McCullum (1) in another brilliant fielding display as lunch was taken.
McCullum was given a life in the eighth over, when Murali Vijay dropped a dolly at first slip.