India, who finished fourth in Pool B, claimed a stunning shoot-out victory over Belgium's Red Lions, a team that came into the contest on the back of three straight victories.
The Kalinga Stadium was a cauldron of deafening noise for a belting match between Pool A winners Belgium (WR: 3) and host nation India (WR: 6).
India led the shoot-out 2-0 after three efforts each, but Belgium forced sudden-death by scoring both of their two remaining efforts while India failed to convert.
Harmanpreet Singh scored what proved to be the winner while Arthur van Doren was unable to beat India shot-stopper Akash Chikte, sparking scenes of utter jubilation both in the stands and on the field from the home favourites.
"It was a really exciting game, I'd describe it as nail-biting. The crowd were amazing today, they were helped us play a really good game," said India's Rupinder Pal Singh after the match.
India's semi-final opponents will come from the winner of Thursday's quarter-final clash between England and Olympic champions Argentina.
Title holders Australia also claimed a place in the competition final four. Australia will face a semi-final meeting against, either Germany or Netherlands, two sides that meet in the quarter-finals on December 7. (ANI)