"The attacker was standing up right over top of the guy with a large hunting knife - a survival, Rambo knife - holding the guy and continually stabbing him, stabbing him, stabbing him in the chest area," Caton told CBC Television.

'Like a robot'

The attack continued as other passengers fled the bus and waited for police, Caton said.

Caton said he, the driver and another passenger desperately tried to hold the bus door closed to prevent the attacker from leaving.

"He calmly walks up to the front [of the bus] with the head in his hand and the knife and just calmly stares at us and drops the head right in front of us," Caton said.

"There was no rage in him ... It was just like he was a robot or something."

Sergeant Steve Colwell of the Royal Canadian Mounted Police said they apprehended the man when he broke a window and tried to escape from the bus by jumping out.

Passengers said the attacker did not seem to know the victim, who appeared to be about 19-years-old.