An opening stand of 174 was not enough for Hong Kong to claim a shock win over India in the Asia Cup as they were beaten by 26 runs.

Shikhar Dhawan's 14th one-day international century laid the groundwork for India's 285-7 in their 50 overs, though they lost five wickets and made just 48 in their final 10 overs.

Hong Kong, who had won the toss and inserted India, were 174 without loss after 34 overs but once captain Anshuman Rath (73) and fellow opener Nizakat Khan (92) were out, no one was able to take on the challenge of knocking off the required runs.

Yuzvendra Chahal (3-46) and Khaleel Ahmed (3-48) were the pick of the India bowlers in a Hong Kong innings that ended on 259-8.

Dhawan (127) was involved in two big partnerships with Ambati Rayudu (60) and Dinesh Karthik (33) but India's middle order were unable to push them past 300 in the final few overs.

MS Dhoni, playing for his country for the first time since a disappointing tour of England, was out for a three-ball duck, while number eight Shardul Thakur was also sent back without scoring.

Nizakat and Rath, who is leading his country at just 20, made an excellent start against an India attack that featured Bhuvneshwar Kumar and Kuldeep Yadav.

But when those two fell in successive overs, only Ehsan Khan (22) was also able to score more than 20 as Hong Kong fell just short of a surprise victory.

"We are proud, but it's bittersweet," Rath said afterwards.

"We should've probably won it but lost few too many wickets in the middle during key times. Credit to the India bowlers for sticking with their plans.

"Going into the tournament we had no pressure, and we wanted to play with a smile on our faces. It would've been nice if we rolled over the best team in the world, but I'm super proud of the boys."