Hardik (3/25 in 4 overs) showed his high value under extreme pressure as his well-directed short balls helped India bowl out Pakistan for 147.
It should have been straight forward chase but India's experienced top-three faltered, putting extra pressure on the middle order.
Hardik (33 not out off 17) and Ravindra Jadeja (35 off 29) then shared a 52-run stand to take India on the cusp of a famous win. The star all-rounder's three fours off Haris Rauf off the 19th over effectively sealed the game for India.
With the team needing 6 off three balls, Hardik finished the game with a six off left-arm spinner Mohammad Nawaz.
The focus was on India's top three going into the tournament and all three -- K L Rahul (0), Rohit Sharma (12 off 18) and Virat Kohli (35 off 34) -- did not have the best of times in the middle.
Rahul was out first ball with a tentative away from the body stroke off Naseem Shah that saw him playing on to his stumps.
Virat, who did hit a couple of confident pull shots in his innings, was dropped in the first over. He also played and missed a few times and also got lucky when a mistimed pull went all the way for six.
With luck going his way, it seemed Kohli will finally get a much-awaited big score but he was caught at long-off off Nawaz. In his previous over, Rohit was too dismissed in a similar fashion as he attempted to clear the long-off fielder.
With Pakistani pacers led by debutant Naseem troubling the Indian batters with extra pace and spinners keeping it tidy, 86 runs off the last 10 overs seemed a tough task.
When Shah returned to rattle Suryakumar Yadav's stumps, India were reduced to 89 for four with a lot riding on incoming batter Hardik and Jadeja.
The equation was brought down to 32 off 18 balls with Pakistan forced to bring one extra fielder inside the circle due to an over rate penalty. Pakistan pacers especially Shah struggling with cramps made the Indians' task a tad easier.
Earlier, Rohit Sharma decided to chase after winning the toss and the bowlers, led by Hardik, set up the game nicely for India.
Bhuvneshwar Kumar (4/26) was at his skillful best and his four-wicket haul included the prized scalp of Babar Azam (10). However, Hardik's envious figures of 3 for 25 in four overs, during the middle phase, triggered a Pakistani batting collapse.
Young seamer Arshdeep Singh also returned decent figures of 2 fo 33 in his first ever appearance in an Indo-Pak clash as all 10 wickets were snapped by speed merchants, a first for India in the shortest version.
The first over of the game bowled by Bhuvneshwar was a rather eventful one as it included two DRS calls going in favour of Mohammad Rizwan (43 off 42) and a straight drive from Babar.
There was not much movement around for both Bhuvneshwar and Arshdeep Singh as they managed to keep things tight in their two over opening spell.
Babar straight drove Arshdeep in the second over, showing the sublime touch he has been in over the past 12 months.
Bhuvneshwar, however, surprised the Pakistan skipper with a bouncer in his second over and he went for the pull only to top edge to Arshdeep at short fine leg.
India went in with Avesh Khan as the third pace option and he struck in his opening over after Rizwan smashed him for a six and four towards the midwicket region.
His fifth ball of the over was faced by left-handed Fakhar Zaman who decided to walk after edging a short and wide ball to wicketkeeper Dinesh Karthik who was picked ahead of Rishabh Pant for the big game.
With the crowd making a lot of noise, the Indians did not hear the edge but Zaman decided to walk, leaving Pakistan at 43 for two in six overs.
Rizwan then shared a 45-run stand for the third wicket with Iftikhar Ahmed (28 off 22) to give the innings some momentum.
However, Hardik changed the course of the game removing the well set Iftikhar and Rizwan with well directed short balls --- the former edged it to Karthik and latter, not sure of what he was doing, ended up giving a regulation catch to third man.
Soon after, Hardik removed Khushdil Shah with another short ball to leave Pakistan at 97 for five in the 15th over.
Number 11 Shahnawaz Dahani hammered two big sixes in the death overs to take Pakistan closer to 150.