Sixteen of 19 crew members on an unidentified ship ate fish that had been obtained in international waters, New Brunswick's medical officer of health, Cristin Muecke, told CBC News.
Three are in the intensive care unit.
Those who showed no symptoms continue to be monitored by hospital staff, Muecke said, because it can take 24 hours for food poisoning to develop.
The crew told New Brunswick health officials they ate the fish around noon on Saturday, and went to emergency room three hours later.
While Saint John Regional Hospital deals with the serious cases, all non-urgent cases are being diverted to St. Joseph's Hospital.
Muecke confirmed the sick crew do not live in Saint John, and there is no danger to the city's residents.