After dismissing England for 406 before lunch, the hosts required just 77 runs to win the match in Ahmedabad.
The morning didn't start well for the visitors, who added just 16 runs to their score of 340-5 as Matt Prior slammed his shot straight into the hands of bowler Pragyan Ojha for a simple catch. Nine runs later, Ojha took his second wicket of the day as Alastair Cook was caught for 176.
Stuart Broad was caught by Umesh Yada, before the hosts took another two quickfire wickets as Graeme Swann and Tim Bresnan were bowled by Ravichandran Ashwin and Zaheer Khan respectively with Ajinkya Rahane catching off the latter's dismissal.
India now lead the series 1-0 ahead of the second Test in Mumbai on Friday.