At least four people were confirmed dead and 55 injured.
The high number of people unaccounted for - likely trapped in the ship or floating in the ocean - raised fears that the death toll could rise drastically, making it one of South Korea's biggest ferry disasters since 1993, when 292 people died.
One student, Lim Hyung-min, told broadcaster YTN after being rescued that he and other students jumped into the ocean wearing life jackets and then swam to a nearby rescue boat.
"As the ferry was shaking and tilting, we all tripped and bumped into each another," Lim said, adding that some people were bleeding.
Once he jumped, the ocean "was so cold. ... I was hurrying, thinking that I wanted to live."
Local television stations broadcast live pictures of the ship, Sewol, listing to its side and slowly sinking as passengers jumped out or were winched up by helicopters. At least 87 vessels and 18 aircraft swarmed around the stricken ship. Rescuers clambered over its sides, pulling out passengers wearing orange life jackets. But the ship overturned completely and continued to sink slowly. Within a few hours only its blue-and-white bow stuck out of the water.
Some 160 coast guard and navy divers searched for survivors inside the ship's wreckage a few kilometers (miles) from Byeongpung Island, which is not far from the mainland and about 470km (290 miles) from Seoul.
Cho Man-yong, a coast guard spokesman, said 16 divers approached the ferry Wednesday night but failed to get inside because the current was too strong. He said the water was very muddy and visibility was poor, but navy and coast guard divers planned to make another approach after midnight.
"We cannot give up," said South Korean President Park Geun-hye, after a briefing in Seoul with officials. "We have to do our best to rescue even one passenger."
Those rescued, many without shoes, were brought to nearby Jindo Island, where medical teams wrapped them in pink blankets and checked them for injuries before settling them down on the floor of a cavernous gymnasium hall.
The ship had set off from Incheon, a city in South Korea's northwest and the site of the country's main international airport, on Tuesday night for an overnight, 14-hour journey to the tourist island of Jeju.
Three hours from its destination, the ferry sent a distress call at about 9am Wednesday after it began listing to one side, according to the Ministry of Security and Public Administration. Officials didn't know what caused it to sink and said the focus was still on rescuing survivors.
Lee Gyeong-og, a vice minister for South Korea's Public Administration and Security Ministry, said 30 crew members, 325 high school students, 15 school teachers and 89 non-student passengers were aboard the ship.
Yonhap news agency said the 146-meter (480-foot) long ship, which travels twice a week between Incheon and Jeju, was built in Japan in 1994 and could carry a maximum of 921 people, 180 vehicles and 152 shipping containers.