The Turkish coastguard opened fire to stop a cargo vessel carrying 337 mainly Syrian migrants heading towards European Union waters and arrested the suspected traffickers, a top local official has said.

The coastguard on Thursday evening launched an operation to chase down the 59-metre Dogan Kartal as it headed through the Dardanelles Straits in northwest Turkey.

The vessel initially paid no heed to calls to stop, including warning shots, but was eventually forced to halt when the guards fired on the engines, the official Anatolia news agency reported on Friday.

"It stopped when the engines were fired on and then came to a complete halt when the steering wheel was locked," Ahmet Cinar, the head of the western Canakkale province where the Straits are located, told the agency.

He did not give further details on how the vessel was halted.

Anatolia said 337 mainly Syrian migrants were on board the ship, including 85 children and 68 women.

It said that two Turkish crew members identified as Y.Y. and N.K. along with three suspected foreign organisers of the trafficking were arrested.

Traffic in the Dardanelles Straits - one of the world's busiest shipping lanes - was temporarily halted during the operation.

The Syrian refugees were taken off the ship and housed in a sports hall in the nearby town of Gelibolu.

Where the ship had been headed was not immediately clear.

Turkey, which is hosting some 1.7 million refugees who have fled the Syrian civil war, has become a key transit point for migrants seeking a better life in Europe.

Many pay traffickers thousands of dollars to take perilous journeys in small boats which often end in disaster.