India defeated Malaysia 2-1 in a men's hockey Pool B match to make the semi-finals at the Commonwealth Games, in Gold Coast, on Tuesday.
Drag-flick specialist Harmanpreet Singh scored both the goals in a thrilling match to give India its second victory in the competition.
India will take on England on Wednesday.
The Malaysians suffered their second defeat.
India went ahead in the third minute off their first penalty-corner through Harmanpreet Singh, whose low flick beat Malaysian goalkeeper Hairi.
However, India's joy was shortlived as Faizal Saari put the Malaysians on level terms in the 16th minute, following a counter attack after S V Sunil was dispossessed in midfield. Saari got the better of goalkeeper Sreejesh after selling him a dummy and sounded the board.
Malaysia attacked relentlessly in the third quarter, but their efforts were foiled by Sreejesh, who brought off a couple of superb saves.
Much against the run of play India forced their third penalty-corner, following which they earned four more and Harmanpreet was on target again in the 41st minute, his high flick finding the left corner of the Malaysian goal.
Two minutes from time Harmanpreet had a chance to register a hat-trick from India’s ninth penalty-corner but goalkeeper Hairi made a fine save.
With a minute left for the hooter the Malaysians went all out for the equaliser but the Indian defence, which performed admirably in the fourth quarter, did well to hold firm.
India were held to a 2-2 draw by Pakistan in their opening match and then struggled to take full points from a 4-3 victory over Wales in their next outing.
The Malaysians were hammered 7-0 by England in their opening match and beat Wales 3-0 in their next.