India had started as favourites but they had to toil hard at the floodlit Major Dhyan Chand Stadium as twice the hosts had to come from a goal down to grab three points.
Drag-flicker Gurjinder Singh scored the winner for India in the penultimate minute of the match after Mandeep Singh (30th) and Akashdeep Singh (57th) sounded the nets to level the scores.
For Canada, Sukhi Panesar (3rd) scored from a field effort while Gordon Johnston made use of their lone penalty corner in the 51st minute
India now need to beat Korea in their final pool match to secure their quarterfinal berth.
Both India and Korea are on three points each from two outings but Korea has better goal difference than the Indians and only a draw in their last match would be enough for them to pip the home team and go forward.
With two wins out of as many games, Netherlands have already qualified for the quarterfinals from Pool C. Netherlands edged past Korea 3-2 to book their place in the quarterfinals of the event.
Against Canada, the Indians were in for a rude shock early in the match as Canada stunned the handful of spectators present at the ground striking in the third minute through Panesar, who capitalised on a defensive lapse to slot home the ball after Brenden Bissett's initial shot struck the corner of the Indian goalpost.
Thereafter it was all India as they dominated the entire opening half and created chances after chances but only to see them go abegging.
The Indians got their first scoring chance in the 10th minute but Malak Singh's deflection from Pradeep Mor's cross from the right flank tantalisingly sailed past the Canadian goal.
Malak was once again at the wrong end as two minutes later, from close range he failed to connect to Mandeep's high reverse shot.
Missed chances were the order of the day for India. Six minutes later, it was Mor's turn to shot wide. The Indians then earned two penalty corners in a span of three minutes but wasted both.
India finally drew parity in the 30th minute through a penalty corner earned and executed by Mandeep, who neatly deflected in Surender Singh's grand flick as India went for improvisation.
After the change of ends it was a more balanced contest as Canada came out with more purpose and managed to take the play to the Indian half.
Canada once again shocked India in the 51st minute by taking the lead through Johnston who perfectly converted their lone penalty corner.
But six minutes later, India drew level again when Akashdeep neatly deflected in skipper Manpreet Singh's piercing pass from the centre.
Knowing very well that only a win can keep them afloat in the tournament, the Indians went for all out attack and created numerous chances only to be denied by the Canadian defence, led by their goalkeeper Kevin Pereira, who was adjudged man-of-the-match for his splendid show under the bar.
But India's persistent pressure resulted in their fifth penalty corner in the 69th minute of the match and this time Gurjinder made no mistake in converting it to sent the sparse crowd into raptures.
India will now face Korea in their last pool match on December 10 while Canada will be up against Netherlands.
India beat Canada 3-2 to keep junior hockey World Cup hopes alive
Advertisement