The co-pilot had locked his captain from the cockpit, commandeered the plane, and headed for Geneva, where he used a rope to lower himself out of a window, then asked for political asylum.
Authorities say a prison cell is more likely.
One passenger said the hijacker threatened to crash the plane if the pilot didn't stop pounding on the locked door. Another said he was terrified "for hours" Monday as the plane careened across the sky.
"It seemed like it was falling from the sky," 45-year-old Italian Diego Carpelli said of the Boeing 767-300.
The jetliner carrying 200 passengers and crew took off from the Ethiopian capital on a flight to Milan and then Rome, but sent a distress message over Sudan that it had been hijacked, an Ethiopian official said. Once the plane was over Europe, two Italian fighter jets and later French jets were scrambled to accompany it.
Italian Air Force Col. Girolamo Iadiciccio said the order to scramble came from NATO to ensure the plane didn't harm national security and didn't stray off-route.
The plane landed in Geneva at about 6 a.m. (0500 GMT). Officials said no one on the flight was injured and the hijacker was taken into custody after surrendering to Swiss police.
"The pilot went to the toilet and (the co-pilot) locked himself in the cockpit," Geneva airport chief executive Robert Deillon told reporters. He "wanted asylum in Switzerland."
It wasn't immediately clear why he chose Switzerland, where Swiss voters recently demanded curbs on immigration. However, Italy has a reputation among many Africans as not being hospitable to asylum seekers.
Ethiopian Airlines is owned by Ethiopia's government, which has faced persistent criticism over its rights record and its alleged intolerance of political dissent.
The co-pilot was identified as Hailemedhin Abera, a 31-year-old Ethiopian man who had worked for Ethiopian Airlines for five years and had no criminal record, said Ethiopia's communications minister, Redwan Hussein, adding that Ethiopia will seek his extradition. Geneva police said he claimed he felt threatened at home.
"His action represents a gross betrayal of trust that needlessly endangered the lives of the very passengers that a pilot is morally and professionally obliged to safeguard," Redwan said.
One passenger, Francesco Cuomo, told the Italian news agency ANSA that he and other passengers woke up shortly after midnight when the plane started to "bounce."
"The pilot was threatening (the hijacker) to open the cockpit door and tried to knock it down without succeeding," said Cuomo, a 25-year-old economist from Italy.
"At this point, a message was transmitted by the loudspeakers in poor English, but the threat to crash the airplane was clearly understood," he added.
Oxygen masks then came down, making everyone on the plane very tense.
"We got scared because we saw these (oxygen masks) come down and the voice of the pilot, that usually is friendly and mellow, was cracking and worried, saying, 'Breathe with the oxygen masks! Sit down!'... Then the plane fell sharply two times," Italian passenger Paola Casale told The Associated Press.
"I thought that the co-pilot had gone nuts," Cuomo told the Corriere della Sera newspaper, adding that "there was a lake below us, and so we suspected that we weren't landing in Milan."
"I realized we weren't in Italy any longer when I recognized the Alps," he said. "When we started circling above Geneva, we were really afraid."
Carpelli said he and his family, returning to Rome from a vacation in Kenya, "had no clue about the hijacking but got scared when the plane suddenly started diving."
The co-pilot later threatened to take away passengers' oxygen if they tried to leave their seats.
"'If you're not sitting down and belted, I'll take away your oxygen,'" passenger Serena Berti quoted the hijacker as saying. She spoke with Italian state TV by phone from Geneva.
Among the 200 people on board were seven crew members, as well as 139 Italians, 11 Americans, 10 Ethiopians, five Nigerians and four French citizens.
Swiss authorities initially thought the Ethiopian plane wanted to land in Geneva for emergency refueling before realizing it was being hijacked, Geneva police spokesman Eric Grandjean said.
Minutes after landing in Geneva, the co-pilot used a rope to climb out of the cockpit, then approached police forces deployed near the plane and "announced that he was himself the hijacker," Grandjean said.
Police escorted the passengers out of the jetliner one by one, their hands over their heads, and took them to waiting vehicles. Video filmed by passengers showed police inside the cabin as a voice over the cabin intercom instructed them in English: "Your attention please, this is a police operation. Please don't move. Stay relaxed and keep your hands on your head."
Geneva airport was closed down for about two hours.
Geneva prosecutor Olivier Jornot said the co-pilot will be charged with taking hostages, a crime punishable by up to 20 years in prison in Switzerland. In Ethiopia, he could face up to 25 years in prison for the hijacking.
Jornot said the hijacker's chances of winning asylum were slim.
"Technically there is no connection between asylum and the fact he committed a crime to come here," he said. "But I think his chances are not very high."
The Swiss federal prosecutors' office took over the case later Monday.
Passengers going to Milan were put on buses, while those going to Rome and elsewhere got alternative flights home. The plane remained at Geneva airport and officials said they did not know when it would be removed.
While Italian and French military aircraft were scrambled to accompany the plane, no Swiss fighter jets were deployed because Switzerland does not have round-the-clock fighter jet intervention capability, Swiss air force spokesman Juerg Nussbaum said.
The leader of Ethiopia's opposition Blue party, Yilikal Getnet, said he believed the hijacker was trying to make a statement about the political situation in Ethiopia.
"I think he took the measure to convey a message that the ... government is not in line with the public," he said.
Human Rights Watch says Ethiopia's human rights record "has sharply deteriorated" over the years. The rights group says authorities severely restrict basic rights of freedom of expression, association and assembly. The government has also been accused of targeting journalists, opposition members and minority Muslims.
There have been at least eight hijackings by Ethiopians or involving Ethiopian planes in the last 25 years.
The deadliest came in 1996, when hijackers stormed the cockpit of a flight from Ethiopia to Ivory Coast via Kenya, demanding that the plane go to Australia. The plane ran out of fuel and crashed off the island nation of Comoros, killing 125 of the 175 people aboard.