The accident happened around 12:30 a.m. Friday at the intersection of Haverford and Lansdowne avenues.
The 49-year-old victim was trapped for 20 minutes and had to be extricated by rescue workers. He was taken to the Hospital of the University of Pennsylvania with multiple injuries and is listed in stable condition.
Two people suffered minor injuries on the SEPTA bus.
Police have not released word on what led to the collision.