The boat, carrying 53 people, tipped over about 2pm on Saturday as Storm Wipha approached the country across the South China Sea.
Media reports said the Wonder Sea boat was carrying 48 passengers and five crew members during the tour of Halong Bay.
Strong winds, heavy rainfall and lightning were reported in the area.
Most of the tourists were from the capital Hanoi, local newspaper VnExpress reported.
There was no official announcement on the nationality of the tourists as emergency crews kept looking for survivors.
Rescue teams found 11 survivors and recovered 27 bodies, eight of them children, the state-run Vietnam News Agency said citing local authorities.
A 14-year-old boy was reportedly among the survivors, and he was rescued four hours after being trapped in the overturned hull.
Halong Bay, about 200km northeast of Hanoi, attracts tens of thousands of visitors every year.
Boat tours are hugely popular.
Storm Wipha, the third typhoon to hit the South China Sea this year, is projected to make landfall along Vietnam's northern coast early next week.
Weather linked to the storm also disrupted air travel.
Noi Bai Airport said nine arriving flights were diverted to other airports and three departing flights were temporarily grounded on Saturday.
with Reuters