The stabbing happened Thursday evening while the bus was traveling in the Vernon Hills jurisdiction, police said.
The 58-year-old homeless man was stabbed multiple times. After an investigation, police arrested Errol Shakes, 51.
Shakes, who is also homeless, was charged with attempted murder, aggravated battery with great bodily harm and aggravated battery with a deadly weapon, according to police.
The victim sustained "significant injuries" but is in stable condition at Condell Hospital, police said.
Anyone with information is asked to contact the Vernon Hills Police Department Investigations Unit at (847) 247-4891.