Authorities declined to name the attacker and victim, and provided no other details about the attack.
But passenger Garnet Caton said the victim was stabbed dozens of times by the man sitting next to him. The passenger then severed the man's head with a large knife.
"We heard this bloodcurdling scream and turned around, and the guy was standing up, stabbing this guy repeatedly, like 40 or 50 times," Caton said from a hotel in Brandon, Manitoba, where he and other passengers had been taken to rest.
"There was no rage or anything. He was like a robot, stabbing the guy."
Caton said passengers raced from the bus but then he, the bus driver and a trucker at the scene re-boarded to see what was happening.
Caton said he saw the suspect had the victim on the floor of the bus and "was cutting his head off and pretty much gutting him."
He said the attacker calmly came to the front of the bus to show off the head.
"He dropped the head and went back and started cutting the body back up," said Cody Olmstead, a passenger from Kentville, Nova Scotia.
The victim, who Caton said appeared to be about 19, had been on the bus since Edmonton. He said the attacker boarded the bus in Brandon, Manitoba, about 80 miles west of Portage La Prairie.
The suspect had been on the bus about an hour and initially did not sit near the victim.
"He sat in the front at first, everything was normal," Caton said.
"We went to the next stop and he got off and had a smoke with another young lady there. When he got on the bus again, he came to the back near where I was sitting.
"He put his bags in the overhead compartment. He didn't say a word to anybody. He seemed totally normal," Caton said. "About a half an hour later, we heard this bloodcurdling scream."
Greyhound spokeswoman Abby Wambaugh said 37 passengers and one driver were on the bus.
Public Safety Minister Stockwell Day called the attack bizarre, but did not discuss details, saying he did not want to jeopardize the investigation.
RSS feeds | Slideshow archive | ABC13 wireless | Help solve crimes