Other passengers saw the killing late Wednesday, the Winnipeg Free Press reported. The bus was a few miles west of Portage la Prairie, Manitoba, at the time.
"He didn't do anything to provoke the guy," said Garnet Caton, one of the 36 passengers. "The guy just took a knife out and stabbed him, started stabbing him like crazy and cut his head off."
The driver pulled over on the Trans-Canada Highway, got other passengers off and, with help from a truck driver who stopped, locked the killer in the bus. Passengers said that the driver was able to disable the bus so that the man could not get it started.
Royal Canadian Mounted Police officers surrounded the bus. A few hours later, they took the man into custody.
His identity and that of the victim had not been released Thursday afternoon. Caton described the victim as young and wearing hip-hop clothing.