Two people have been confirmed dead so far – a male student and a female crew member.
The South Korean Coastguard says 164 people have been rescued and 295 remain unaccounted for.
The ferry, with 459 people and 150 vehicles on board, was sailing to the southern island of Jeju when it sent a distress call at 9am local time (1am UK time) on Wednesday morning as it began listing to one side.
Soon afterwards it had completely capsized, with only the front part of its hull visible above the water.
A South Korean government spokesman said 95% of the ferry is now submerged.
There is no indication yet what caused the ship to list and roll onto its side, although one witness told television channel YTN there had been a “loud impact and noise” before it began sinking.
The 325 students on board are from a high school in Ansan, near Seoul, and were on their way to the island for a four-day trip, according to a relief team set up by officials in Gyeonggi province.
One student, Lim Hyung-min, told YTN he jumped into the ocean wearing a life jacket with other students and then swam to a rescue boat.
“As the ferry was shaking and tilting, we all tripped and bumped into each another,” he said, adding some people were bleeding.
He said the ocean was “so cold”, adding: “I was hurrying, thinking that I wanted to live.”
The current number of injured is seven, including people with burns, hypothermia and fractured bones.
The 6,825-ton ship left Incheon port, west of Seoul, on Tuesday evening, according to the state-run Busan Regional Maritime Affairs and Port Administration.
It ran into difficulties about 60 miles (100km) south of the Korean peninsula.
A total of 18 helicopters, 34 rescue boats and a team of elite navy divers have been sent to the area.
The US Navy has dispatched its amphibious assault ship USS Bonhomme Richard to aid the operation.
Fishing and other commercial vessels appeared to rescue many passengers before emergency teams arrived at the scene.
Passenger Kim Seong-mok told YTN he was “certain” people were trapped inside as water quickly rushed into the vessel, and the severe tilt of the ferry stopped them getting out.
Some people yelled at those who could not get out, urging them to break windows, he said.
Mr Kim said he felt the ship tilt and heard it crash into something before the ferry operator made an announcement asking passengers to wait and not move.
The rescue operation is being carried out in difficult conditions.
“There is so much mud in the sea water and the visibility is very low,” Lee Gyeong-Og, the vice minister of security and public administration, told a press briefing in Seoul.
Parents of the children on board have gathered at their high school in Ansan.
“I talked to my daughter,” one mother told YTN. “She said she had been rescued along with 10 other students.
“They said they had jumped into the water before getting rescued.”
One of the dead was found inside the sinking ferry, while the other died soon after arriving at the Mokpo Hankook hospital on the mainland.