India scored two goals in the dying minutes of the games through Varun Kumar (59th minutes) and Mandeep Singh (60 minutes).
Other goals for India were netted by Rupinder Pal Singh (51 minutes) and Manpreet Singh (33 minutes) while David Condon (17 minutes), Liam Ansell (52 minutes) and Sam Ward (56 minutes) scored for England.
India, who topped the pool with 10 points, will next take on New Zealand while second placed England will face defending champions Australia.
The first quarter of the Games was dominated by England, as they kept the ball for longer time. It was the English who drew the first blood in the 17th minute when Condon breached the Indian goal with a brilliant backhand.
None of the teams scored in the second quarter and India were trailing 1-0 at the half time mark. However, the Men in Blue levelled the score line in the 33rd minute through skipper Manpreet.
Continuing their good show, India again found a breakthrough in the 51st minute. Rupinder successfully converted the penalty corner (PC) to give India a crucial 2-1 lead.
India then handed their opponents two PCs and England successfully converted them in the 52nd and 56th minute respectively to snatch the lead.
In the dying minutes of the games, India hit back when Akashdeep Singh helped India win a PC. Varun did not let the golden opportunity go and struck the ball inside the goal to again equalise the score-line.
With just seconds left, Indian skipper Manpreet attempted a shot from the half-line which was given a final touch by Mandeep to win it 4-3. (ANI)