India spanked Belgium 4-2 in their final preliminary match on Thursday to top Group A and set up a semi-final clash with arch-rivals Pakistan in the Champions Challenge I hockey tournament in Salta, Argentina.
India, who needed just a draw to make it to the last-four, were tied 2-2 with the Belgians at half-time.
Pakistan thrashed South Africa 4-1 in another match to finish second in Group B.
The India-Pakistan clash is on Saturday.
India controlled most of the play, with Shivendra Singh and Prabhjot Singh being very active upfront, but the Belgian defence held tight.
Prabhjot had a great opportunity to open the scoring after stealing a ball from Xavier Reckinger in deep defence but his shot was just wide.
India finally scored through a penalty-corner in the 19th minute from a low flick by Dhananjay Mahadik.
The Indians could have doubled their tally a few minutes later following another penalty-corner, but the initial shot was saved and Rajpal could not negotiate the rebound.
Belgium reacted well and after crashing a penalty-corner on the post, equalised with a penalty-stroke by Jerome Dekeyser in the 24th minute. Less than a minute later, a field goal by Renaud Pangrazio helped them go ahead.
The end of the period was dominated by India and they scored through Shivendra, who was left unmarked at the far post, in the 30th minute.
India missed a chance to regain the lead early in the second half following a penalty-corner, and the game continued back and forth at a high tempo, providing thrilling entertainment for the crowd.
Tushar Khandekar made it 3-2 for India in the 48th minute after a series of saved shots, but Belgium were not down yet and Adrian D'Souza had to pull off a spectacular diving save to protect the Indian net.
Belgium continued with the same intensity but the very focused Indian team denied them another goal.
Almost at the hooter, Prabhjot scored to enable India finished on high.
Following the victory, India finished ahead of New Zealand, Belgium and China in Pool A.
Friday is a rest day.