Nepal’s Bimal Magar scored the opening goal of the game but India clawed back into the game thanks to goals from Rowlin Borges (27th minute), Sunil Chhetri (67th) and a brace from the exciting teenager Lallianzuala Chhangte (81st, 90th).
Chhangte, 18, also became the youngest Indian scorer, moving past the iconic Baichung Bhutia, who did it as a 19-year-old in 1995.
With this win, India went top of the table with six minutes and entered the semi-finals along with Sri Lanka.
Indian head coach Stephen Constantine sprung a few surprises in his starting XI as Arnab Mondal, Jeje Lalpekhlua, Robin Singh, Gurpreet Singh and Pronay Halder were dropped to the bench in favour of Aiborlang Khongjee, Bikash Jairu, Hali Charan Narzary, Rowlin Borges and Subrata Paul.
Sunil Chhetri started up front for the hosts with Robin Singh failing to recover in time from the injury picked up from the game against Sri Lanka.
Nepal coach Patrick Aussems dropped skipper Anil Gurung, with Biraj Maharjan leading the side onto the pitch. Key players such as Bimal Magar and Rohit Chand kept their place in the starting XI.
The match kicked off in scintillating fashion as Nepal took the lead in just the third minute after Nawayug Shreshta’s shot rebounded off the post only for Magar to follow up with a tap in. Shreshta had made a very good run to catch the whole of Indian backline sleeping.
India did not have to wait for their opportunity as Sanju Pradhan split the Gorkhali defence to put Chhetri through on goal minutes later, but an excellent diving tackle from Aditya Chaudhary inside the box meant Nepal kept their 1-0 lead.
The hosts pushed on for the equaliser as Narzary tried a shot from distance in the 20th minute that failed to test the rival goalkeeper.
A minute later a dangerous cross from the left by Bikash Jairu caused trouble inside the box as the goalkeeper punched it into the path of Sanju whose shot was wide off the mark. Sanju was at it again immediately as his pace left the full back on his heels before delivering a cross that neither Narzary nor Jairu could reach.
The hardwork paid off in the 26th minute and the hosts were able to make it 1-1 after a free kick into the box fell into the feet of Borges who blasted the ball into the roof of the net.
The equaliser caused umpteen turnovers in midfield, with both sides unable to hold possession steadily. A cleverly taken set piece found Jairu unmarked inside the box on the stroke of half time but a well timed tackle from Rohit Chand took the ball off the Indian’s midfielder’s feet.
Constantine reacted to the scoreline by replacing Sanju with Chhangte after the restart. Nepal kept pushing forward to take the lead and in the 49th minute, Shreshta’s run into the box was picked up by a good ball from midfield but his shot was saved by the goalkeeper.
In the 57th minute, Heman Gurung forced Subrata Paul into a top save after substitute Jagajeet Shreshta’s lay off found the No.11 within shooting distance from goal.
With Nepal unable to get their lead even after the hour mark, Aussems decided to turn to Anil Gurung who he had initially decided to leave on the bench.
However before the influential leader could make a mark, India took the lead in the match. In the 67th minute, Narzary found himself free with the ball on the left before crossing for Suni Chhetri who made no mistake in placing the ball into the back of the net.
Anil Gurung had a chance to equalise for Nepal in the 74th minute but Paul came up with a good low save to keep India ahead.
India made it 3-1 in the 81st minute thanks to a sensational strike from Chhangte. The teenager received the ball on the edge of the box, cut onto his left foot before unleashing a curler that found the top of the net.
Chhangte doubled his tally with a well timed header in the 90th minute to round up a overwhelming performance.