The man was hit by the school bus on the corner of Parkes and Wentworth streets about 2.50pm on Tuesday afternoon.
Emergency services were called to the scene to treat the man, believed to be aged in his 30s.
NSW Ambulance said the man was trapped under the bus “for a period” and sustained “significant head and pelvis injuries”.
Firefighters used pieces of wood and other equipment to raise the bus from the ground to get to the man.
He was pulled out from under the bus about 3.15pm, 25 minutes after he was hit.
Paramedics and rescuers from CareFlight treated the man on the scene until he was taken to Westmead Hospital in a serious condition.
Inspector Brad Element from NSW Police said the man was crossing the road when he was hit.
“It appears from our initial inquiries at this point in time that he was crossing away from the pedestrian crossing that’s at the intersection here,” he said.
Police have set up a crime scene on Wentworth Street and are investigating how the accident happened.
The bus driver was not injured in the crash although the windscreen was partially shattered, and no passengers were on board at the time. Police said the driver will undergo mandatory testing.
Anyone who witnessed the crash has been asked to phone Crime Stoppers on 1800 333 000.