Survivors recounted how the masked gunmen taunted students before killing them.
Many were forced to phone their parents to urge them to call for Kenyan troops to leave Somalia — and were shot anyway.
As the gunmen prowled the corridors hunting down more people to kill, some students smeared blood from their dead friends over their bodies to pretend they had been shot.
"There were bodies everywhere in execution lines, we saw people whose heads had been blown off, bullet wounds everywhere, it was a grisly mess," said Reuben Nyaora, an aid worker who helped the wounded.
Just before darkness fell, Kenyan troops moved in on the dormitory where the gunmen were holed up. The siege ended with four gunmen killed in a hail of gunfire, and one suspect reportedly arrested. At least 79 people were also wounded. Those killed were students apart from three policemen and three soldiers.
The masked attackers — strapped with explosives and armed with AK-47s — singled out Christians at the university, killing them on the spot. But Muslims also were among the dead, as were women, even though the attackers had said at one point that they, too, would be spared.
The bodies of the 148 students and security officers have been flown to the Nairobi morgue where screaming and crying family members were assisted by Red Cross staff, who tried to console them.
Survivor Helen Titus said the gunmen immediately headed for a lecture hall where Christians were at prayer.
"They investigated our area. They knew everything," said Titus, a Christian, who was being treated in Garissa for a bullet wound to the wrist. The 21-year-old English literature student said she smeared blood from classmates on her face and hair and played dead at one point.
The gunmen also told students hiding in dormitories to come out, assuring them that they would not be killed, Titus said.
"We just wondered whether to come out or not," she said. Many students did, and the gunmen shot them anyway.
Another survivor, Nina Kozel, said she was awakened by screaming. Many students hid in vain under beds and in closets in their rooms, she added.
"They were shot there and then," she said, adding that the killers shouted "God is great" in Arabic.
Those who surrendered were either selected for killing, or freed in some cases, apparently because they were Muslim, she said.
Al-Shabab has struck several times in Kenya, including the siege at the Westgate Mall in Nairobi in 2013 that killed 67 people, to retaliate against Kenya for sending troops to Somalia in 2011 to fight the militants and stabilise the government in Mogadishu.
Pope Francis condemned the latest attack as an act of senseless brutality and urged Kenyan authorities to work to bring an end to such attacks and "hasten the dawn of a new era of brotherhood, justice and peace".
The UN Security Council expressed outrage — a word it rarely uses — in condemning the attack.
President Barack Obama expressed condolences "for the lives lost during the heinous terrorist attack".
"The future of Kenya will not be defined by violence and terror; it will be shaped by young people like those at Garissa University College."
The attack came six days after Britain advised "against all but essential travel" to parts of Kenya, including Garissa.
A day before the attack, Kenyatta dismissed that warning saying: "Kenya is safe as any country in the world. The travel advisories being issued by our friends are not genuine."
One man posted a photo on Twitter showing about 100 bodies lying face-down on a blood-smeared courtyard with the comment: "Our inaction is betrayal to these Garissa victims."
On Friday, a huge crowd of traumatised survivors and relatives gathered at the university gate, desperate for news of who was killed or wounded. The toll was set at 148 after emergency workers had scoured the campus for bodies.
— Agencies