Hardik smashed the fourth ball of the last over for six to secure a five-wicket victory, with India needing to score 148 runs off of 20 overs.
Before Ravindra Jadeja was dismissed early in the last over, the all-rounder hit three fours in the 19th to change the equation from 21 runs from 12 balls to seven from six.
Hardik outlasted Pakistan’s 147 all out, finishing 33, not out from 17.
Before being caught by left-arm spinner Mohammad Nawaz, who took 3-33 and bowled the last over in Dubai, Virat Kohli also hit 35 off 34 balls.
After Jadeja was out for 35, Dinesh Karthik, the next batsman, got a single, and Nawaz delivered a dot ball, but Hardik cleared the long-on boundary with six required from three.
Pakistan’s Mohammad Rizwan scored 43 off 42 balls, while Bhuvneshwar Kumar, an Indian seamer, got 4-26 as Babar Azam’s team was bowled in 19.5 overs.
It was their first match since Pakistan defeated India by 10 wickets in the T20 World Cup last fall.
With the victory, India moves ahead of Pakistan and Hong Kong to take the lead in Group A of the Asia Cup, which is being contested in the Twenty20 format this time.
On Saturday, Afghanistan crushed Sri Lanka in the first game of Group B, which also included Bangladesh.
In the Super Four phase, played in a round-robin style before the top two teams meet in the final on September 11th, the top two teams from each group advance.